문제:
9 × 9 격자판에 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오.
Mul = [] #격자
MulMax = []#행의 최댓값
for i in range(9): #격자 채우기
N = list(map(int, input().split()))
Mul.append(N)
for a in range(9): #MulMax 채우기
MulMax.append(max(Mul[a]))
col = MulMax.index(max(MulMax))
row = Mul[col].index(max(Mul[col]))
print(max(MulMax))
print(col+1, row+1)
아이디어
- 각 행의 최댓값을 모아놓은 리스트(MulMax)의 최댓값이 격자 전체에서 가장 큰 값이다. : max(MulMax)
- 최댓값의 MulMax에서의 index가 행 번호입니다. : MulMax.index(max(MulMax))
- 행 번호를 안다면 격자에서 최댓값을 포함하는 행에서 최댓값의 index가 열 번호입니다.: Mul[col].index(max(Mul[col]))
- 위에서 구한 행, 열 번호는 + 1을 해야 구하고자 하는 위치를 출력할 수 있습니다.: col +1, row + 1
⁂ 이차원 배열의 행 = col, 열 = row라고 놓으면 코드짤때 편하다.