-
[4일차](문제 번호 : 2566, 최댓값) 도전백준 문제 풀이 2023. 7. 21. 23:09
1. 문제 요약
9 by 9의 격자판에 81개의 자연수 또는 0이 주어진다. 이들 중 최댓값과 그 위치(행과 열)을 출력하면 된다.
최댓값이 두 개 이상이라면, 그들중 하나의 위치만을 출력하면 된다.
예시.
입력
3 23 85 34 17 74 25 52 65 10 7 39 42 88 52 14 72 63 87 42 18 78 53 45 18 84 53 34 28 64 85 12 16 75 36 55 21 77 45 35 28 75 90 76 1 25 87 65 15 28 11 37 28 74 65 27 75 41 7 89 78 64 39 47 47 70 45 23 65 3 41 44 87 13 82 38 31 12 29 29 80
출력
90 5 7
2. 풀어보기
1. 2차원 배열로 81개의 수를 입력받는다.
2. 1행부터 그 행에서의 최댓값을 찾는다. 다음 행에서의 최댓값이 이전 행의 최댓값을 초과하면, 최댓값을 갱신한다.
3. 위치 역시 갱신한다.
3. 코드
1. 2차원 배열로 81개의 수를 입력받는다.
import sys A = [[] for _ in range(9)] for i in range(9): A[i] = list(map(int, sys.stdin.readline().rstrip().split()))
readline()을 통해 빠른 입력을 받는다.
2. 1행부터 그 행에서의 최댓값을 찾는다. 다음 행에서의 최댓값이 이전 행의 최댓값을 초과하면, 최댓값을 갱신한다.
3. 위치 역시 갱신한다.
M = -1 for i in range(9): if max(A[i]) > M: M = max(A[i]) x, y = i+1, A[i].index(M)+1
M은 최댓값이다. 기본 값이 -1 인 이유는 모든 수가 0으로써 입력되어도 최댓값이 0으로 지정되기 위함이다.
x, y는 위치이다. 인덱스 값은 0번째부터 세므로, +1 한 값을 위치로써 지정한다.
4. 느낀점
이번 문제는 난이도가 쉬워서 얻어가는 것이 없었다.
큰 의미를 가지지 못한 문제같았다.
'백준 문제 풀이' 카테고리의 다른 글
[6일차](문제 번호 : 2745, 진법 변환) 도전 (0) 2023.07.23 [5일차](문제 번호 : 2536, 색종이) 도전 (0) 2023.07.22 [3일차](문제 번호 : 10798, 세로읽기) 도전 (0) 2023.07.20 [2일차](문제 번호 : 2738, 행렬 덧셈) 도전 (0) 2023.07.19 [1일차](문제 번호 : 1316, 그룹 단어 체커) 도전 (0) 2023.07.18