[Python][백준 2566] 최댓값
카테고리: Python Coding Test
🔍 최댓값 문제 풀이
백준 2566번 최댓값 문제의 파이썬 풀이
📝 문제 설명
9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오.
💡 풀이
이 문제는 2차원 배열을 순회하면서 최댓값과 그 위치를 찾는 문제이다. 입력받은 값을 순차적으로 확인하면서 최댓값을 갱신할 때마다 해당 위치도 함께 저장하면 됩다.
🔍 코드 설명
- 최댓값을 저장할 변수와 위치를 저장할 변수를 초기화한다.
- 9×9 격자판을 순회하면서:
- 각 행을 입력받는다.
- 행의 각 원소를 확인하면서 최댓값을 찾는다.
- 최댓값이 갱신될 때마다 위치도 함께 저장한다.
- 최종 최댓값과 그 위치를 출력한다.
✨ 참고
- 행과 열의 번호는 1부터 시작하므로 인덱스에 1을 더해줍다.
sys.stdin.readline()
을 사용하여 입력 속도를 개선할 수 있다.- 최댓값이 여러 개인 경우 그 중 하나만 출력하면 된다.
🎯 주의사항
- 입력값이 0일 수도 있으므로 최댓값 초기화를 -1로 해야 한다.
- 행과 열의 번호는 1부터 시작하지만, 파이썬의 인덱스는 0부터 시작한다.
📝 코드
import sys
max_value = -1
max_row, max_col = 0, 0
for i in range(9):
row = list(map(int, sys.stdin.readline().split()))
for j in range(9):
if row[j] > max_value:
max_value = row[j]
max_row, max_col = i + 1, j + 1
print(max_value)
print(max_row, max_col)