#71. 백준 2566번 문제 풀이: 최댓값 | 문제 원본 보기 |
--입력-- 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. 주어진 값들을 9행 9열씩 받아서 배열에 넣는다. 2. 이중 루프(루프 9번안에서 루프 9번)를 돌려서 배열값들을 중에 최대값을 비교해 가며, 최댓값과 위치값(행,열)을 저장해 둔다. 3. 루프가 끝나면 최댓값과 위치를 출력한다.
S = [] # 격자판 숫자를 저장할 리스트
for i in range(9): # 9 행을 반복
S.append(list(map(int, input().split())))
# 공백구분된 9개의 숫자열을 입력받아 정수형으로 변환해서 리스트 형식으로 받는다.
max_v = 0 # 최댓값, 초기값 0
max_i = max_j = 0 # 최대값의 위치, 초기값 0, 0
for i in range(9): # 행 만큼 반복
for j in range(9): # 열 만큼 반복
if S[i][j] > max_v: # 현재값이 최댓값보다 크면..
max_v = S[i][j] # 최대값과 위치를 저장해 둔다.
max_i = i
max_j = j
print(max_v) # 최댓값 출력
print(max_i + 1, max_j + 1) # 최댓값 위치 출력
# 리스트 인덱스는 0부터, 격자 판은 1부터 이므로 인덱스+1 을 해줌.