Blog

B2566 최댓값

날짜 2024-04-01
사용 언어 Java
문제 유형 구현
문제 URL https://www.acmicpc.net/problem/2566
시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율
1 초 128 MB 85199 33844 29768 41.233%

문제 #

문제 설명 #

<그림 1>과 같이 9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오.

예를 들어, 다음과 같이 81개의 수가 주어지면

1열 2열 3열 4열 5열 6열 7열 8열 9열
1행 3 23 85 34 17 74 25 52 65
2행 10 7 39 42 88 52 14 72 63
3행 87 42 18 78 53 45 18 84 53
4행 34 28 64 85 12 16 75 36 55
5행 21 77 45 35 28 75 90 76 1
6행 25 87 65 15 28 11 37 28 74
7행 65 27 75 41 7 89 78 64 39
8행 47 47 70 45 23 65 3 41 44
9행 87 13 82 38 31 12 29 29 80

이들 중 최댓값은 90이고, 이 값은 5행 7열에 위치한다.

제한사항 #
  • 첫째 줄부터 아홉 번째 줄까지 한 줄에 아홉 개씩 수가 주어진다.

  • 주어지는 수는 100보다 작은 자연수 또는 0이다.

  • 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다.

  • 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다.


나의 풀이 #

import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);


        // 가장 큰 행, 열
        int maxRow = 0;
        int maxColumn = 0;

        int max = 0;
        
        for (int i = 0; i < 9; i++) {
            int maxValue = 0;
            int maxColumnIndex = 0;

            for (int j = 0; j < 9; j++) {
                int newNum = sc.nextInt();
                if (maxValue < newNum) {
                    maxValue = newNum;
                    maxColumnIndex = j;
                }
            }

            if (max < maxValue) {
                max = maxValue;
                maxRow = i;
                maxColumn = maxColumnIndex;
            }

        }

        System.out.println(max);
        System.out.printf("%d %d",maxRow+1, maxColumn+1);
    }
}

실행결과

다른 사람의 풀이 #



관련개념 학습 #