코테 대비 python/백준

성적이 낮은 순서로 학생 출력하기

ylab 2022. 2. 16. 12:23

출처: 이코테

# 학생의 정보는 이름, 성적으로 구분
# 성적이 낮은 순서대로 = 내림차순으로 이름 출력

N= int(input())

#딕셔너리 생성
dict = {}

#딕셔너리에 쌍추가
for i in range(N):
    k, v = input().split()
    v =int(v)
    dict[k] = v

#딕셔너리 튜플 리스트로 바꾸기
a = dict.items()
a
a = sorted(a, key = lambda x:x[1],reverse=True)

#출력
for i in a:
    print(i[0], end=" ")
 
 
======================================
 #정수 입력
n= int(input())
#리스트 생성
array = []

#리스트에 append
for i in range(n):
    input_data = input().split()
    array.append(input_data[0], int(input_data[1]))


#key 람다식 써서 해결
array = sorted(array, key= lambda student: student[1])


#출력
for student in array:
    print(student[0], end= " ")
 

확실히 답지 풀이가 깔끔하다

근데 뭔가 쌍으로 나오니깐 딕셔너리 써야하는 압박감 들어서

딕셔너리 사용해봤다.

 

얻은것

1. dict.items() 체화

2. input()은 자료형이 리스트!

3. sorted 안에 key = 람다식