참고: https://www.acmicpc.net/problem/2566
✔️ 문제
문제는 다음과 같다.
✔️ 풀이
입력에서 받은 2차원 배열 값들 중
가장 큰 값과 해당 값의 행렬 좌표를 출력하면 된다고 생각했다.
그러기 위해서는 받은 값들을 2차원 배열로 우선 만들어주었다.
import sys
data=[list(map(int, sys.stdin.readline().rstrip().split())) for _ in range(9)]
new_data=[]
for i in range(9):
new_data.append(max(data[i]))
num=max(new_data)
for i in range(9):
if num in data[i]:
print(num)
print(i+1, data[i].index(num)+1)
else:
pass
리스트 컴프리헨션으로 2차원 배열을 선언하고,
새로운 리스트에 각 행의 최댓값을 저장해준뒤
새로운 리스트에서 가장 큰 값을 저장하였다.
그리고 2차원 배열을 돌면서 가장 큰 값이 저장되어있는
행과 열에 1,1부터 시작이니까 각 1을 더해준 값을 출력했다.
맞은 사람들을 보니 m,x,y 등 3개의 변수를 주고
계속 배열을 돌면서 최댓값을 m에 저장하고,
x와 y에는 1을 더해주는 식으로 푸는 방법도 보게 되었다.
다양한 풀이와 생각을 위해서
화이팅 💪
'알고리즘(algo) > 백준' 카테고리의 다른 글
[백준] 1712번 - 손익분기점 (0) | 2023.01.22 |
---|---|
[백준] 2563번 - 색종이 (0) | 2023.01.21 |
[백준] 2577번 - 숫자의 개수 (0) | 2023.01.20 |
[백준] 1065번 - 한수 (0) | 2023.01.20 |
[백준] 15596번 - 정수 N개의 합 (0) | 2023.01.19 |