ezhoon

[백준] 10818_최소, 최대_Java 본문

[Java] 백준 문제풀이/1차원 배열

[백준] 10818_최소, 최대_Java

ezhoon 2022. 1. 7. 19:33

백준 10818

 

10818번: 최소, 최대

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

www.acmicpc.net

 

 

⚠️주의사항

  • 1차원 배열 문제이므로 배열로 풀 것
  • 공백으로 구분한다

문제풀이


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

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

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

        int index = 0;
        int[] arr = new int[N];

        /*for (int i = 0; i < N ; i++) {
            arr[index] = Integer.parseInt(st.nextToken());
            index++;
        }*/

        while (st.hasMoreTokens()) { // hasMoreTokens -> StringTokenizer에 토큰이 남아있으면 true 비어있으면 false 반환
            arr[index] = Integer.parseInt(st.nextToken());
            index++;
        }

        Arrays.sort(arr);
        System.out.println(arr[0] + " " + arr[N - 1]);
    }
}

for로 풀던 while로 풀던 속도나 코드 길이는 비슷합니다.

while문에서는 평소에 안 쓰던 hasMoreTokens()가 쓰이는데 StringTokenizer에서 토큰이 남아있으면 true값을 반환해줘서 while문에서 모든 값을 추가하거나 비교 등을 하고 싶을 때 사용합니다.

'[Java] 백준 문제풀이 > 1차원 배열' 카테고리의 다른 글

[백준] 8958_OX퀴즈_Java  (0) 2022.01.08
[백준] 1546_평균_Java  (0) 2022.01.08
[백준] 3052_나머지_Java  (0) 2022.01.07
[백준] 2577_숫자의 개수_Java  (0) 2022.01.07
[백준] 2562_최댓값_Java  (0) 2022.01.07
Comments