짱이 될거야
백준 2566: 최댓값 Python 본문
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)
'알고리즘' 카테고리의 다른 글
백준 3009: 네 번째 점 Python (0) | 2022.11.25 |
---|---|
백준 25501: 재귀의 귀재 Python (0) | 2022.11.25 |
백준 2738: 행렬 덧셈 (0) | 2022.11.24 |
백준 10807: 개수 세기 Python (0) | 2022.11.23 |
백준 3003: 킹, 퀸, 룩, 비숍, 나이트, 폰 Python (0) | 2022.11.23 |
Comments