문제 해결
항상 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 |