본문 바로가기
Backjoon

Backjoon - problem 2566 최댓값 파이썬

by ddahu 2023. 4. 27.

https://www.acmicpc.net/problem/2566

 

2566번: 최댓값

첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다.

www.acmicpc.net

 

 

 

 

  • 입력 과 출력

 

 

myList = [list(map(int, input().split())) for _ in range(9)]
maxList = []
for k,i in enumerate(myList,start=1):
    maxList.append([max(i),k,i.index(max(i))+1])

result = max(maxList)
print(result[0])
print(result[1],result[2])

 

  • 해설

이 문제 같은 경우에는 9 * 9 라는 2차원 테이블을 주어졌으며 문제 자체에 2차원 배열내에 최댓값의 위치만 찾으면 되는 문제이다.

 

구체적인 해설

 

myList = [list(map(int, input().split())) for _ in range(9)]

9 * 9 2차원 리스트를 초기화 시켜주고

maxList 라는 빈 리스트를 초기화 시켜준뒤 각 행마다 (최댓값 , 열 ,행 ) maxList에 넣어서 풀이하는 방식으로 풀었다.

 

enumerate를 사용하여 입력받은 행의 위치를 반복문을 통해 k 로 전달받고

list.index() , 와 max(list) 함수를 사용하여 최댓값을 추출

 

maxList = [[85, 1, 3], [88, 2, 5], [87, 3, 1], [85, 4, 4], [90, 5, 7], [87, 6, 2], [89, 7, 6], [70, 8, 3], [87, 9, 1]]

라는 결과가 만들어진다.

 

result 에 만들어진 maxList에 최댓값 [ 90, 5, 7] 저장 하여 출력 형태로 출력만 해주면서 풀었다.