본문 바로가기
개발/[백준] 브론즈 마스터하기

[백준] 10818번 최소, 최대

by 쑨토리 2022. 7. 17.
반응형

https://www.acmicpc.net/problem/10818

 

10818번: 최소, 최대

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

www.acmicpc.net

 

 

 


 

💻첫 번째 풀이방법

 

맨 첫줄에 N을 입력받아 해당 크기의 배열을 선언한 뒤 arr 배열 원소에 각각 입력받은 값을 넣어주는 방법.

 

그리고 최댓값과 최솟값을 찾는 방법을 모르겠어서 블로그를 찾아보며 알게된 메소드를 활용했다. 

 Arrays.sort() .

 

이 메소드는 배열에 저장된 원소 값을 오름차순으로 정렬해주는 메소드다.

이 메소드를 활용하여 정렬하면 최솟값은 배열의 첫번째 원소(index 0)에, 최댓값은 배열의 마지막 원소(arr.length-1)에 있을테니 이를 출력하면 된다.

import java.io.*;
import java.util.StringTokenizer;
import java.util.Arrays;

public class Main {
    public static void main(String[] args)throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int N = Integer.parseInt(br.readLine());
        int [] arr = new int [N];
        StringTokenizer st = new StringTokenizer(br.readLine()," ");

        for (int i = 0; i < N; i++){

            arr[i] = Integer.parseInt(st.nextToken());
        }
        Arrays.sort(arr);
        bw.write(arr[0] + " "+ arr[N-1]);
        bw.flush();
    }
}

 

 

 

 

💻 두번째 풀이 방법

max 와 min을 활용한 풀이.

이 방법은 친구가 알려줘서 터득했다.

아직은 어색하지만, 익숙하게 만들어서 비슷한 문제를 발견했을때 활용해 봐야겠다. 

import java.io.*;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int cnt = Integer.parseInt(br.readLine());
        StringTokenizer st= new StringTokenizer(br.readLine(), " ");

        int arr[] = new int[cnt];
        for (int i = 0; i < cnt; i++) {
            arr[i] = Integer.parseInt(st.nextToken());
        }

        int max = arr[0];
        int min = arr[0];

        for(int i=0; i<arr.length; i++){

            if ( arr[i] > max){
                 max = arr[i];
            }
            if (arr[i] < min) {
                 min = arr[i];
            }

        }


        bw.write(min + " " + max);
        bw.flush();
    }
}