본문 바로가기
C#/C# : Baekjoon

[백준] C# : 최소, 최대 (10818번)

by TODAYCODE 2021. 7. 26.
반응형

백준 단계별로 풀어보기 5단계 1차원배열 1번문제

 

10818번: 최소, 최대

첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.

www.acmicpc.net

 

문제의 핵심

1. 배열을 사용하고 정렬할 수 있는가?

 


 

입력된 숫자들 중에서 최소, 최대 숫자를 찾는 문제이다.

푸는 방법은 다양하게 존재하지만,

입력된 숫자들을 배열에 저장했다가, 오름차순으로 정렬해서

인덱스 번호 맨 처음과 끝을 출력하면 아주 간단하게 풀 수 있다.

 

배열의 정렬은 정말로 많이 쓰이고,

다양하고 복잡한 풀이에서 가장 기본적으로 사용되는 경우가 잦으므로

필수적으로 사용할 수 있어야 한다.

 

 

C#에서는 Array를 사용해서 배열을 다양하게 컨트롤 할 수 있다.

Array.sort(배열)

이렇게 써준다면 배열이 정렬된다.

 

 

 

정답 코드

using System;

namespace 배열1
{
    class Program
    {
        static void Main(string[] args)
        {
            // 입력 받음
            int n = int.Parse(Console.ReadLine());

            // 입력받은 숫자 길이만큼의 배열을 생성.
            int[] arr = new int[n];

            // 두번째로 입력받는 숫자들을 공백기준으로 잘라서 배열로 저장
            string[] s = Console.ReadLine().Split();
            
            // int로 바꿔서 저장
            for (int i = 0; i < n; i++)
            {
                arr[i] = int.Parse(s[i]);
            }
            
            // 배열을 정렬
            Array.Sort(arr);
            
            // 배열의 맨앞과 맨뒤 출력
            Console.WriteLine($"{arr[0]} {arr[n - 1]}");
        }
    }
}

 

 

반응형

댓글