[백준] 20053 최소, 최대 2 - Java

Yunki Kim·2023년 2월 6일
0

백준

목록 보기
103/104
post-thumbnail

문제


링크


코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

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

        int T = Integer.parseInt(br.readLine());
        for (int i = 0; i < T; i++) {
            int N = Integer.parseInt(br.readLine());

            int min = Integer.MAX_VALUE;
            int max = Integer.MIN_VALUE;
            StringTokenizer st = new StringTokenizer(br.readLine());
            for (int j = 0; j < N; j++) {
                int num = Integer.parseInt(st.nextToken());
                if (num < min) min = num;
                if (num > max) max = num;
            }
            sb.append(min).append(" ").append(max).append("\n");
        }
        System.out.print(sb);
        br.close();
    }
}

리뷰

첫번째 풀이는 생략하였지만 배열로 입력받아 Arrays.sort를 이용하여 정렬을 통해 최소, 최댓값을 구하였지만 생각보다 시간이 엄청높게나왔다.

그래서 그냥 값을 입력받을 때마다 바로바로 비교하는 방식으로 바꾸어 제출하니 시간이 확줄긴했다.

배열 정렬의 경우 최악의 경우 O(N^2)의 시간복잡도를 가지게되지만
바로 비교하는 경우 O(N)이라 시간차이가 꽤나게된다.

0개의 댓글