자료구조/문제풀이

[백준 JAVA] 2566 최댓값

휴먼코딩 2024. 6. 29. 21:46
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Test_01 {
    public static void main(String[] args) throws IOException {
        //1. 문제
        //9X9 격차판에 쓰여진 81개의 자연수 또는 0이 주어질 때
        //이들 중 최댓값을 찾고
        // 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오

        // 2. 풀이방법
        //  - 행과 열의 개수만큼 반복문을 돌린다
        //  - 모든 숫자들을 비교하여 최댓값을 구한다

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int max = 0; //최댓값
        int maxRow = 1; //행
        int maxCol = 1; //열

        //행과 열의 개수만큼 반복문을 돌린다.
        //Token으로 모든 숫자를 가져와 num이라는 변수에 할당한다.
        //max 변수로 모든 숫자들을 비교하여 최댓값을 구한다.
        //해당 최댓값이 위치한 행과 열을 maxRow와 maxCol에 할당한다.
        for (int i = 1; i <= 9; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            for (int j = 1; j <= 9; j++) {
                int num = Integer.parseInt(st.nextToken());
                if (num > max) {
                    max = num;
                    maxRow = i;
                    maxCol = j;
                }
            }
        }

        System.out.println(max);
        System.out.println(maxRow + " " + maxCol);
        br.close();

    }
}

 

IDE에는 출력이 안되고 백준에도 nosuchElementException이 뜨길래 컴파일 문젠가 싶었더니

반복문을 돌릴때 배열을 0부터 시작해 실행이 안 됐던 거였다..... 

허허...... 그러면 당연히 실행이 안되지.....