본문 바로가기
Algorithm

자바 입력 값에서 최솟값 최댓값 구하기

by ZEROMI 2021. 11. 29.
728x90

백준알고리즘 10818


might not have been initialized

변수 선언 후 초기화하지 않은 상태에서 변수의 값을 이용해 연산하거나 사용하려 했을 때 발생하는 에러다.
변수 선언 시 초기화 하거나 해당 변수를 사용하기 전에 값을 할당해주면 해결할 수 있다.

 

StringTokenizer

StringTokenizer.hasMoreTokens() : 꺼낼 토큰이 남아있는지 확인한다. (returnType : boolean)

StringTokenizer.countTokens() : 꺼낼 토큰이 몇 개 남았는지 확인한다. (returnType : int)

StringTokenizer.nextToken() : 토큰을 하나씩 꺼낸다.

 

import java.util.Scanner;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;
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));
        
        while (true) {
            int num = Integer.parseInt(br.readLine());
            
            if (num > 0 && num < 1000001) {
                while (true) {
                    String str = br.readLine();
                    StringTokenizer st = new StringTokenizer(str);
                    int minVal = 0;
                    int maxVal = 0;
                    int cnt = 0;
                    
                    for (int i = 0; i < num; i++) {
                        if (st.hasMoreTokens()) {
                            int a = Integer.parseInt(st.nextToken());
                            if (a >= -1000000 && a <= 1000000) {
                                if (i == 0) {
                                    minVal = a;
                                    maxVal = a;
                                } else if (a < minVal) {
                                    minVal = a;
                                } else if (a > maxVal) {
                                    maxVal = a;
                                }

                                cnt++;

                            }
                        }
                    }
                    
                    if (num == cnt) {
                        bw.write(minVal + " " + maxVal);
                        break;
                    }
                    
                }
                
                break;
            }
            
        }
        
        bw.flush();
        bw.close();
        
    }   
    
}
728x90