본문 바로가기
백준 문제 풀이/2차원 배열

(#2566 Java) 최댓값

by _비니_ 2024. 2. 23.

 

 

문제 해결

 

항상 9 x 9 행렬이 주어진다. arr 배열을 만들어주자.

int arr[][] = new int[9][9];

 

행렬 격자판에서 최댓값을 구하고, 그 최댓값의 행과 열의 위치를 출력해야하므로,

각각 max(최댓값), x(행), y(열)의 변수를 만들어준다.

int max = 0;
int x = 1; //현재의 위치가 몇 행
int y =1 ; //몇 열인지 저장하는 변수

 

 

9행, 9열에 대한 값들을 입력받아 arr 배열에 저장한다.

for(int i = 0; i < 9; i++) {
    for (int j = 0; j < 9; j++) {
        arr[i][j] = in.nextInt();
    }
}

 

이후 각각의 값들을 max와 비교한 후, 현재의 max값보다 크면 max값을 증가시키고, x,y (현재의 위치) 값도 저장시킨다.

for(int i = 0; i < 9; i++) {
    for (int j = 0; j < 9; j++) {
        if(arr[i][j] > max) {
            max = arr[i][j]; //max값 갱신
            x = i+1; //현재 행 저장
            y = j+1; //현재 열 저장
        }
    }
}

 

그리고 출력해주면 끝~! 아주 간단하당

 

최종 코드

 

import java.util.Scanner;

public class MaxValue {
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        int max = 0;
        int arr[][] = new int[9][9];
        int x = 1; //현재의 위치가 몇 행
        int y =1 ; //몇 열인지 저장하는 변수

        for(int i = 0; i < 9; i++) {
            for (int j = 0; j < 9; j++) {
                arr[i][j] = in.nextInt();
            }
        }

        for(int i = 0; i < 9; i++) {
            for (int j = 0; j < 9; j++) {
                if(arr[i][j] > max) {
                    max = arr[i][j]; //max값 갱신
                    x = i+1; //현재 행 저장
                    y = j+1; //현재 열 저장

                }
            }
        }

        in.close();

        System.out.println(max);
        System.out.println(x +" " + y);

    }
}
반응형

'백준 문제 풀이 > 2차원 배열' 카테고리의 다른 글

(#2563 Java) 색종이  (0) 2024.02.24
(#10798 Java) 세로읽기  (0) 2024.02.24
(#2738 Java) 행렬 덧셈  (1) 2024.02.23