1. 2566번
1) 문제
2) 풀이
import sys
max_numbers = []
max_column = []
for i in range(9):
low = list(map(int,sys.stdin.readline().split()))
max_numbers.append(max(low))
max_column.append(low.index(max(low)))
M = max(max_numbers)
a = max_numbers.index(M)
b = max_column[a]
print(M)
print(a+1,b+1)
3) 문법 및 풀이과정
(1) max_numbers (각 행의 최댓값들을 모아둘 리스트)와 max_column(각 행의 최댓값의 index를 저장할 list , 즉 각 행의 최댓값이 몇 열에 위치하는 지를 알아내기 위한 리스트) 를 만든다.
(2) for문을 통해 각 행의 숫자들을 입력받는다.
(3) 입력 받은 수들 중 최댓값을 미리 만들어 둔 max_numbers에 추가한다.
(4) 추가한 최댓값의 index를 max_column 리스트에 추가한다.
(5) max_numbers 리스트의 최댓값이 곧 구하고자 하는 행렬 내의 최댓값이 된다. 이를 M이라 정의하자.(가독성을 위해)
(6) max_numbers에서의 M의 index가 곧 M의 행의 값이 된다.(물론 이때 파이썬 내에서는 시작을 0행으로 카운트 하므로 최종적으로는 1을 더해줘야한다.)
(7) max_column의 a index에 위치한 값이 행렬 내에서 M의 열의 값이 된다.
(8) 마지막으로 a,b를 출력하는데 이 때, 파이썬은 행과 열의 시작을 1행이 아닌 0행부터 시작하므로, a와 b에 각각 1을 더한 값을 출력한다.
'Learning-log > Algorithm 문풀' 카테고리의 다른 글
백준(파이썬, python) - 1712번 손익분기점(2022.11.02) (0) | 2022.11.03 |
---|---|
백준(파이썬, python) - 2738번 행렬 덧셈(2022.11.02) (0) | 2022.11.03 |
백준(파이썬, python) - 10807번 개수 세기(2022.11.01) (0) | 2022.11.01 |
백준(파이썬, python) - 5597번 과제 안 내신 분..? (2022.11.01) (0) | 2022.11.01 |
백준(파이썬, python) - 1316번(2022.10.31) (0) | 2022.10.31 |