[Python][백준 2566] 최댓값

Date:     Updated:

카테고리:

태그:

🔍 최댓값 문제 풀이

백준 2566번 최댓값 문제의 파이썬 풀이

📝 문제 설명

9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오.

💡 풀이

이 문제는 2차원 배열을 순회하면서 최댓값과 그 위치를 찾는 문제이다. 입력받은 값을 순차적으로 확인하면서 최댓값을 갱신할 때마다 해당 위치도 함께 저장하면 됩다.

🔍 코드 설명

  1. 최댓값을 저장할 변수와 위치를 저장할 변수를 초기화한다.
  2. 9×9 격자판을 순회하면서:
    • 각 행을 입력받는다.
    • 행의 각 원소를 확인하면서 최댓값을 찾는다.
    • 최댓값이 갱신될 때마다 위치도 함께 저장한다.
  3. 최종 최댓값과 그 위치를 출력한다.

✨ 참고

  • 행과 열의 번호는 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)

Python Coding Test 카테고리 내 다른 글 보러가기