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))])
'🥧 Python > ⚙️ 코딩테스트' 카테고리의 다른 글
[백준-Python] 2753번: 윤년 (0) | 2023.03.06 |
---|---|
[백준-Python] 2752번: 세 수 정렬 (0) | 2023.03.06 |
[백준-Python] 10214번: Baseball (0) | 2023.03.01 |
[백준-Python] 10103번: 주사위 게임 (0) | 2023.03.01 |
[백준-Python] 10162번: 전자레인지 (0) | 2023.03.01 |