백준[2566] - 최댓값

문제:

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라고 놓으면 코드짤때 편하다.