본문 바로가기

알고리즘 공부/백준 > Python3

[백준 파이썬] #11557: Yangjojang of The Year

www.acmicpc.net/problem/11557

 

11557번: Yangjojang of The Year

입학 OT때 누구보다도 남다르게 놀았던 당신은 자연스럽게 1학년 과대를 역임하게 되었다. 타교와의 조인트 엠티를 기획하려는 당신은 근처에 있는 학교 중 어느 학교가 술을 가장 많이 먹는지

www.acmicpc.net

[문제]

입학 OT때 누구보다도 남다르게 놀았던 당신은 자연스럽게 1학년 과대를 역임하게 되었다.

타교와의 조인트 엠티를 기획하려는 당신은 근처에 있는 학교 중 어느 학교가 술을 가장 많이 먹는지 궁금해졌다.

학교별로 한 해동안 술 소비량이 주어질 때, 가장 술 소비가 많은 학교 이름을 출력하여라.

같은 테스트 케이스 안에서 소비한 술의 양이 같은 학교는 없다고 가정한다.

[문제 접근]

예제 입력 형태를 보니 딕셔너리를 사용해야겠다.

최대 key값의 value값을 구하던, 최대 value값의 key값을 구하던 해야 한다. 나는 전자가 편하다고 생각하여 해당 딕셔너리를 swap시키고 최대 key값의 value값을 구할 것이다.

맨날 리스트 문제만 풀다가 오랜만에 딕셔너리 문제를 풀려고 하니 막힘이 좀 있었다...

 

[정답]

 

[1] 테스트 케이스 수를 변수 T에 입력받는다.

[2-7] T만큼 for문을 돌면서 술 소비가 가장 많은 학교를 구한다. 먼저 학교 개수를 N에 입력받는다. for문을 N번 돌면서 a,b에 학교 이름과 소비한 술의 양을 입력받는다. 그런 다음 key값을 a로 value값을 b로 하여 딕셔너리 school에 추가한다.

[8] 나는 최대 key값의 value값을 구하는 것이 더 쉽다고 생각하여 딕셔너리 school을 swap해주어 딕셔너리 swap_school을 선언한다.

[9] swap_school의 최대 key값을 가지는 value값을 출력한다.

 

EX)

school={ 'Yonsei':10, 'Korea':10000, 'Ewha':20 }

swap_school={ 10:'Yonsei', 10000:'Korea', 20:'Ewha' }

max(swap_school)=10000

swap_school[max(swap_school)]='Korea'