백준 풀이/자바(Java)

백준 2566 자바 - 최댓값

콘스_ 2023. 10. 12. 16:00
// 최댓값
package Bronze_III_3;

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

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

        int num = 0; // 입력받은 숫자 저장 공간
        int maxNum = 0; // 최댓값 저장 공간
        int maxLow = 1; // 최댓값의 행
        int maxCol = 1; // 최댓값의 열

        for (int row = 1; row <= 9; row++) { // 행
            st = new StringTokenizer(br.readLine());

            for (int col = 1; col <= 9; col++) { // 열
                num = Integer.parseInt(st.nextToken());

                // 최댓값, 최댓값의 행, 열 저장
                if (num > maxNum) { 
                    maxNum = num;
                    maxLow = row;
                    maxCol = col;
                }
            }
        }

        System.out.println(maxNum);
        System.out.println(maxLow +" "+ maxCol);
    }
}

처음엔 maxLow와 maxCol의 값도 0으로 초기화 해서 틀렸었다. 그 이유는 행, 열은 각각 1행, 1열부터 시작하기 때문이다. 그래서 maxLow와 maxCol의 값을 0으로 초기화 했을시, 입력값에 0만 넣으면 maxLow와 maxCol의 값이 0으로 출력돼서 틀린다.

아니면 if (num > maxNum) 부분을 if (num >= maxNum)으로 고치면 maxLow와 maxCol을 1이 아닌 0으로 초기화해도 된다.