[백준 / Java] 2566번 : 최댓값

개발자가 되고 싶어요 ㅣ 2023. 2. 24. 15:53

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

 

2566번: 최댓값

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

www.acmicpc.net

 


◎ 문제

 

 


◎ 코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.util.*;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int numList[][] = new int[9][9];
        int max = 0;
 
        // 입력받고 최댓값을 저장해둔다.
        for (int i = 0; i < 9; i++) {
            for (int j = 0; j < 9; j++) {
                numList[i][j] = sc.nextInt();
                if (numList[i][j] > max) {
                    max = numList[i][j];
                }
            }
        }
 
        // 최댓값 출력
        System.out.println(max);
 
        // 반복문을 loopOut으로 저장해두고
        // 최댓값 발견하면 인덱스+1 출력 후 다중 반복문 탈출
        loopOut:
        for (int i = 0; i < 9; i++) {
            for (int j = 0; j < 9; j++) {
                if (numList[i][j] == max) {
                    System.out.println((i+1+ " " + (j+1));
                    break loopOut;
                }
            }
        }
    }
}
cs

 


◎ 풀이 및 기록

 

입력 받은 값을 만들어 둔 이중리스트에 저장해준다. 그리고 변수에 최댓값을 저장해둔다. 

이중리스트를 순회해 최댓값과 일치한다면 해당 인덱스를 출력하고 종료한다.

반복문을 변수로 지정해두고 break 뒤에 변수를 써주면 원하는 반복문을 종료해줄 수 있다.