-
2566번 최댓값백준 코딩테스트/2차원 배열 2024. 10. 30. 15:59
문제
<그림 1>과 같이 9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오.
예를 들어, 다음과 같이 81개의 수가 주어지면
이들 중 최댓값은 90이고, 이 값은 5행 7열에 위치한다.
입력
첫째 줄부터 아홉 번째 줄까지 한 줄에 아홉 개씩 수가 주어진다. 주어지는 수는 100보다 작은 자연수 또는 0이다.
출력
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다.
예제 입력 1 복사
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
예제 출력 1 복사
90 5 7
nn, m, max_value = 0, 0, 0
for i in range(9):row = list(map(int, input().split()))if max(row) >= max_value:max_value = max(row)n = i + 1m = row.index(max(row)) + 1
print(max_value)print(f'{n} {m}')행렬에서 최댓값을 가져오면 되는데, 여기서 굳이 행렬에 대한 리스트를 만들지말고 진행해도 된다고 생각했다. 왜냐 최댓값만 가져오면 되니까.!
max()로 row에 대한 값을 가져오고, 변수로 저장해 둔 다음 row마다 진행해서 max()를 구하고 비교하면 된다.
간단하다.
'백준 코딩테스트 > 2차원 배열' 카테고리의 다른 글
2563번 색종이 (1) 2024.10.30 10798번 세로읽기 (0) 2024.10.30 2738번 행렬 덧셈 (0) 2024.10.30