문제 풀이

[백준] 2566번: 최댓값 - JAVA(자바)

auyeol 2023. 8. 21. 12:58
728x90

 

문제

https://www.acmicpc.net/problem/2566

 

2566번: 최댓값

첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다.

www.acmicpc.net

 

9x9 행렬의 성분 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 문제이다.

 

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

[출력]
90
5 7

 

------------------------------------------------------------------------------------------------------------------

 

풀이

 

9 x 9 행렬이므로 2차원 배열의 크기를 9로 설정하였다.

 

숫자를 입력받은 뒤, 행렬의 성분이 max보다 큰 경우 max가 되도록, 몇 행 몇 열인지 알 수 있게 x, y에 저장하였다.

 

전부 다 0으로 입력한 경우, 1행 1열이 나와야하므로 x와 y의 초기값은 1로 설정하였다.

 

 

import java.util.Scanner;

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

		int i,j;
		int max = 0;
		int x = 1, y = 1;
		
		int arr[][] = new int[9][9];
		
		for(i=0;i<9;i++) {
			for(j=0;j<9;j++) {
				arr[i][j] = sc.nextInt();
			}
		}
		
		for(i=0;i<9;i++) {
			for(j=0;j<9;j++) {
				if(arr[i][j]>max) {
					max = arr[i][j];
					x = i+1;
					y = j+1;
				}
			}
		}
		sc.close();
		
		System.out.println(max);
		System.out.println(x+" "+y);
	}
}

 

728x90