문제:
<그림 1>과 같이 9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오.
예를 들어, 다음과 같이 81개의 수가 주어지면
이들 중 최댓값은 90이고, 이 값은 5행 7열에 위치한다.
입력: 첫째 줄부터 아홉 번째 줄까지 한 줄에 아홉 개씩 수가 주어진다. 주어지는 수는 100보다 작은 자연수 또는 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
풀이 코드
tmp = [list(map(int, input().split())) for _ in range(9)]
num = 0
lis = []
for i in range(len(tmp)):
count = 0
for j in tmp[i]:
count += 1
if num <= j:
num = j
lis.extend((i + 1, count))
print(num)
print(*lis[-2:])
해석
1. 입력되는 값들을 리스트에 담아서 2차원 리스트를 만들었다.
2. for문, if문을 통해서 num의 값을 최대값으로 갱신하였고, 갱신이 될때마다 비어있는 리스트에 최대값의 행과, 열값을 추가하였다.
3. 마지막으로 최대값과 리스트에 담긴 값들중 마지막에 담긴 행과 열을 출력하였다.
'백준' 카테고리의 다른 글
백준-11005번: 진법 변환 2 (1) | 2023.12.28 |
---|---|
백준-2745번: 진법 변환 (1) | 2023.12.27 |
백준-2563번: 색종이 (0) | 2023.12.26 |
백준-10798번: 세로읽기 (0) | 2023.11.19 |
백준-2738번: 행렬 덧셈 (1) | 2023.11.09 |