Notice
Recent Posts
Recent Comments
Link
관리 메뉴

윤일무이

[백준-Python] 11557번: Yangjojang of The Year 본문

🥧 Python/⚙️ 코딩테스트

[백준-Python] 11557번: Yangjojang of The Year

썸머몽 2023. 3. 1. 19:24
728x90
 

11557번: Yangjojang of The Year

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

www.acmicpc.net

 

📌 풀이

한 번 풀었을 때는 하나도 이해 못하고 남의 코드 참고해서 적었던 건데

다시 한 번 풀어보니까 이제서야 이해가 된다!

 

 

test_case 수 만큼 라운드가 구성되고, 라운드의 첫 줄에는 참여하는 학교 수를 입력한다.

이후에는 학교 이름, 소비한 술 양이 한 줄로 들어가야 하고 라운드 별로 술을 많이 소비한 '학교 이름'이 출력되면 된다.

 

비교하기 위해서 가장 쉽게 리스트로 열었고 학교 이름 = univname, 술 양 = drink로 더해두었다.

가장 술을 많이 소비한 학교 이름을 알아야 하는데, 학교 이름은 문자라서 max가 적용되지 않는다.

하지만 학교 이름이랑 술 양을 같은 횟차에 기입했기 때문에 그럼 drink에 max를 적용한 후,

해당 순서가 몇 번인지 알아내 univname에 그 인덱스를 적용하면 술을 가장 많이 소비한 학교를 알 수 있다.

 

그래서 print에 max(drink)를 하고 이 인덱스를 찾기 위해 drink.index(max(drink)를 한 거다.

univname의 인덱스를 알기 위해 저 인수를 univname[drink.index(max(drink)] 하면

가장 술을 많이 마신 인덱스를 통해 학교 이름을 찾아낼 수 있다!

 

장족의 발전!

딕셔너리로도 풀어볼 수 있을까? 

검색해보니 많던데 오늘 한 번 해봐야겠다!

 

 

✅ 코드

test_case = int(input())

univname = []
drink = []

for i in range(test_case) :
    round = int(input())
    for j in range(round) :
        name, soju = input().split()
        soju = int(soju)
        univname.append(name)
        drink.append(soju)
    print(univname[drink.index(max(drink))])
728x90