처음 n(인원수)를 입력받고

이름과, iq를 입력받는다.

iq가 높은순으로 3명 출력한다. 단, iq가 같으면 먼저 측정한 사람을 출력한다.

 

dict을 활용해서 풀려했지만 잘 되지 않아 리스트의 index를 찾아 해결하였다.

<망한코드>

n = int(input())
L = []
for i in range(n):
    L.append(list(input().split()))
    
    
dict_L = dict(L)
print('dict_L', dict_L)
sorted_dict = sorted(dict_L.items(), key = lambda a : a[1] , reverse = True)
print('sorted_dict', sorted_dict)

for i in range(3):
    print(list(sorted_dict[i])[0])

 

<문제 해결>

n = int(input())
L = []
name = []
iq = []
for i in range(n):
    a, b = input().split()
    name.append(a)
    iq.append(int(b))

for i in range(3):
    max_index = iq.index(max(iq))
    print(name[max_index])
    name.pop(max_index)
    iq.pop(max_index)

 

'<코딩테스트> > [기타 문제-기초]' 카테고리의 다른 글

[011] 림보  (0) 2024.09.19
[010] 기억상실  (0) 2024.09.15
[007~009] 문제풀이  (0) 2024.09.15
[006]가장 큰 나머지  (0) 2024.09.15
[005] ID만들기  (1) 2024.09.15

+ Recent posts