[Java] 백준 2566번: 최댓값

U·2023년 3월 1일

백준

목록 보기
18/116

💻 문제


일단 이해하자🤔

  • 9 x 9 크기의 int형 2차원 배열을 만든 뒤 이중 for문을 이용해서 값을 넣어준 뒤 if문에서 가장 큰 값을 찾고 그 인덱스를 반환하면 된다. 그러나..
  • 쉬운 문제라고 생각하고 문제를 대충 읽고 풀었더니 90%대에서 틀렸다고 떴다. 문제의 조건에서 주어지는 수는 100보다 작은 자연수 또는 0이다라고 나와있으므로 모든 값이 0인 배열이 나올수도 있는데 max를 0으로 초기화해두면 안된다. max를 -1로 초기화했더니 맞았다😅

👀 풀이

import java.io.*;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bfw = new BufferedWriter(new OutputStreamWriter(System.out));

        int arr[][] = new int[9][9];
        int max = -1;
        int indexI = 0;
        int indexJ = 0;

        for(int i = 0; i < 9; i++) {
            String str = bfr.readLine();
            StringTokenizer st = new StringTokenizer(str, " ");
            for(int j = 0; j < 9; j++) {
                arr[i][j] = Integer.parseInt(st.nextToken());
            }
        }

        for(int i = 0; i < 9; i++) {
            for(int j = 0; j < 9; j++) {
                if(max < arr[i][j]) {
                    max = arr[i][j];
                    indexI = i + 1;
                    indexJ = j + 1;
                }
            }
        }

        bfw.write(String.valueOf(max + "\n" + indexI + " " + indexJ));

        bfr.close();
        bfw.flush();
        bfw.close();
    }
}

💡 결과


아쉬웠던 점••

  • 문제 작은 조건까지 꼼꼼히 보기!!
profile
백엔드 개발자 연습생

0개의 댓글