backjeon/Bronze

Baekjoon(백준) - 2566 (최댓값) | Python

SecLogs YJ 2026. 3. 13. 07:43
max_num = -1
max_row = 0
max_col = 0

for i in range(9):
    row = list(map(int, input().split()))

    for j in range(9):
        if row[j] > max_num:
            max_num = row[j]
            max_row = i+1
            max_col = j+1

print(max_num)
print(max_row, max_col)

 

1. 최댓값 및 변수 초기

max_num = -1

 

문제에서 입력되는 수는 0이상 100이하의 자연수 이므로, 초기값을 -1로 설정한다.

어떤 값이 입력되더라도 첫 비교에서 반드시 갱신된다.

 

또한, 최댓값이 위치한 좌표를 저장하기 위해 다음 변수도 함께 초기화 한다.

max_row = 0
max_col = 0

 

2. 반복문(for, range),행렬 입력 받기

for i in range(9):
	row = list(map(int, input().split()))

 

한 줄에 9개의 숫자가 입력되며, 총 9번 반복된다.

 

예를 들어, 입력이 

3 23 85 34 17 74 25 52 65

 

이면 row는 다음과 같은 리스트가 된다.

[3, 23, 85, 34, 17, 74, 25, 52, 65]

 

3. 중첩 반복문

    for j in range(9):
        if row[j] > max_num:
            max_num = row[j]
            max_row = i+1
            max_col = j+1

 

리스트에서 특정 위치의 값을 가져올 때 '인덱스(index)'를 사용한다.

 

현재 값(row[j])이 지금까지 저장된 최댓값(max_num)보다 크면, 최대값을 갱신하는 코드이다.

또한, 위치도 함께 저장된다.

 

파이썬의 리스트 인덱스틑 0부터 시작된다.

하지만, 문제에서는 행과 열의 번호가 1부터 시작이기 때문에, max_row와 max_col을 저장할 때 +1을 해준다.

 

4. 결과 출력

print(max_num)
print(max_row, max_col)

 

최대값 출력과, 최댓값이 위치한 행과 열을 출력해 준다.


👉 Baekjoon(백준) - 2566 (최댓값)