관리 메뉴

100세까지 코딩

[백준] 2566번 최댓값(파이썬) 본문

코딩테스트/파이썬

[백준] 2566번 최댓값(파이썬)

100세까지 코딩 2024. 1. 11. 18:12
 

2566번: 최댓값

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

www.acmicpc.net

문제

나의 생각
  • 2차원 배열에 모두 입력 받는다.
  • 최댓값을 -1로 초기화 시켜놓는다.
  • 이중 반복문으로 순회해가며 최댓값보다 큰 값이 나오면 해당하는 값과 위치를 저장한다.
나의 풀이
matrix = [list(map(int, input().split())) for _ in range(9)]
max_res = -1
max_index_row = 0
max_index_col = 0

for i in range(9):
    for j in range(9):
        if matrix[i][j] > max_res:
            max_res = matrix[i][j]
            max_index_row = i
            max_index_col = j
print(max_res)
print(max_index_row+1,max_index_col+1)
새롭게 알게 된 풀이
max_value = -1
row = -1
col = -1
for i in range(9):
    number_list = list(map(int, input().split()))

    if max(number_list) > max_value:
        max_value = max(number_list)
        row = i
        col = number_list.index(max_value)

print(max_value)
print(row + 1, col + 1)

- 2차원 배열에 모두 입력할 필요없이 입력받는 각 list에서 max값을 찾고 비교한다.

  변수 i가 이미 행으로서 역할을 하고 있기 때문이다.

  열은 index() 함수를 써서 찾아낸다.