Dev Hyeri

◖코딩 테스트◗▬▬▬▬▬▬▬▬▬/백준

[백준] 2566 최댓값 (설명/코드/정답)

_hyeri 2024. 8. 17. 20:35

 

문제 링크 : https://www.acmicpc.net/problem/2566

 

 

 

1. 요구 사항 이해

시간, 메모리 제한 : 1초 / 128 MB

 

9x9 배열 내의 값 중 최댓값을 찾고 그 인덱스 출력 

압렵되는 수는 100보다 작은 자연수 또는 0

 

 

2. 설계/검증 

복잡도

시간 복잡도  최악의 경우  공간 복잡도
O(1)   O(1)

 

 

 

 

 

3. 정상 코드

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        // 입력을 위한 객체 생성
        Scanner scan = new Scanner(System.in);
        // 9x9 격자판을 저장할 2차원 배열 선언
        int[][] table = new int[9][9];

        int maxValue = 0; // 최댓값 저장 변수
        int maxRow = 0; // 최댓값 행 저장 변수
        int maxCol = 0; // 최댓값 열 저장 변수 선언과 초기화

        // 격자판의 값 입력
        for (int i = 0; i < 9; i++) {
            for (int j = 0; j < 9; j++) {
                table[i][j] = scan.nextInt();
                // 유효성 검사
                if (table[i][j] < 0 || table[i][j] >= 100) {
                    System.out.println("주어지는 수는 100보다 작은 자연수 또는 0이다.");
                    return;
                }

                if (table[i][j] > maxValue) {
                    maxValue = table[i][j];
                    maxRow = i;
                    maxCol = j;
                }
            }
        }

        // 결과 출력
        System.out.println(maxValue);
        // 인덱스는 1부터 시작하므로 1을 더해준다.
        System.out.println((maxRow + 1) + " " + (maxCol + 1));

        scan.close();
    }
}