백준알고리즘/구현
백준 알고리즘 2566번 [최댓값] 파이썬
지웅쓰
2023. 4. 15. 22:45
https://www.acmicpc.net/problem/2566
2566번: 최댓값
첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다.
www.acmicpc.net
어제 2차원 리스트에 관해 감을 못잡았었는데 문제를 풀다보니 감을 잡앗다.
일단 9x9 행렬이니 미리 변수를 할당해주고, row list를 만들어 반복문을 실행하는 동안 이 리스트 안에 넣어준다. 참고로 넣어줄 때 리스트로 넣어주어야 한다. 그냥 넣어주면 9개라는 숫자를 넣었는데 받는 변수는 1개이기 때문에 에러가 난다. 그리고 이 문제의 핵심은 아마 row, list, max number를 반복문 전에 미리 할당해놓으면 접근하기 쉬운 문제 같다. 최댓값을 0으로 해두고 이중 반복문을 돌려 숫자가 더 큰게 나올 때마다 변수를 바꿔준다. 그리고 코드 시작 때 int로 입력을 받지 않고 float으로 받은 이유는 0때문이다. 출력할 때는 int로 다시 바꿔준다.
row = 9
column = 9
row_list = []
max_row = 1
max_column = 1
max_number = 0
for i in range(row):
numbers = list(map(float, input().split()))
row_list.append(numbers)
for i in range(1, row+1):
for j in range(1, column+1):
number = row_list[i-1][j-1]
if number >= max_number:
max_number = number
max_row = i
max_column = j
print(int(max_number))
print()
print(max_row, max_column)