Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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
Tags
more
Archives
Today
Total
관리 메뉴

짱이 될거야

백준 2566: 최댓값 Python 본문

알고리즘

백준 2566: 최댓값 Python

jeong57 2022. 11. 24. 09:22

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

 

2566번: 최댓값

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

www.acmicpc.net

 

여기서 주의할 것은 초기 최댓값을 0보다 작은 값으로 잡아야 한다는 것이다.

나는 arr[i][j] > max_result로 설정했는데, 행렬의 값은 0부터 가능하다고 명시돼 있다. 그렇기 때문에 초기 최댓값 max_result = 0으로 설정해버리면 초기 좌표인 fi, fj가 결과값이 돼 버린다.

따라서 arr[i][j] > max_result로 설정하는 경우 max_result = -1 이렇게 잡아야 한다.

만약 arr[i][j] >= max_result인 경우 max_result = 0이어도 상관없다. 대신 이 경우에는 같은 값을 가진 좌표 중 가장 큰 값이 출력될 것이다.

import sys
input = sys.stdin.readline

arr = [list(map(int, input().split())) for _ in range(9)]   # 입력 행렬

fi, fj = -1, -1
max_result = -1
for i in range(9):
    for j in range(9):
        if arr[i][j] > max_result:
            fi, fj = i+1, j+1
            max_result = arr[i][j]
print(max_result)
print(fi, fj)

 

Comments