<그림 1>과 같이 9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오.
예를 들어, 다음과 같이 81개의 수가 주어지면
이들 중 최댓값은 90이고, 이 값은 5행 7열에 위치한다.
입력
첫째 줄부터 아홉 번째 줄까지 한 줄에 아홉 개 씩 수가 주어진다. 주어지는 수는 100보다 작은 자연수 또는 0이다.
출력
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈간을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한곳의 위치를 출력한다.
위 문제를 파이썬 코드로 풀이 하였다.
# 2023년 4월 29일 15:43:14 제출
#
#
#
#
#
rows = 9 // 행의 갯수
cols = 9 // 열의 갯수
array = [[0] * cols] * rows // 9 * 9 의 2차원 배열 생성
for i in range(0,9): // input을 받아서 행마다 9개의 수를 삽입한다.
num_list = list( map( int, input().split()))
array[i] = num_list
// 최댓값 비교를 위한 행과 열의 위치
max_rows = 0
max_cols = 0
for j in range(0,9):
for y in range(0,9):
// 현재 행열의 값과 새로운 값을 비교 하였을때, 최대값을 위취를 지정.
if(array[j][y] >= array[max_rows][max_cols]):
max_rows = j
max_cols = y
print(array[max_rows][max_cols])
print(max_rows+1,max_cols+1)
풀이를 하였을때 for문에서 range를 정수값을 직접 넣지 않고 배열의 길이만큼 인자를 지정할 수 있는 방법이 있을 것 같은데 그 부분을 해내지 못하여서 아쉽다.
더 나은 방법이 있거나 조언해줄 부분이 있으시면 피드백 부탁드리겠습니다.!!!
'BeakJoon' 카테고리의 다른 글
BeakJoon - 5397번: 키로거 (1) | 2023.12.28 |
---|---|
BeakJoon - 10812번: 바구니 순서 바꾸기 (2) | 2023.05.17 |