우노
[Hash] 백준 13414번 “수강신청” Python 풀이 본문
문제 링크
풀이
- 중복 신청된 학번은 뒤로 밀린다는 것을 고려해,
- 수강신청이 들어온 순서대로, 학번과 순서를 딕셔너리에 Key, Value 형식으로 저장합니다.
- 해당 방식을 통해, 중복 신청된 학번의 순서는 자연스럽게 커지게 됩니다.
- 이후, 순서를 기준으로 오름차순 정렬한 뒤, 학번을 제한 인원만큼 출력하면 됩니다.
- 추가적으로, 제한 인원보다 신청 인원이 적을 경우에는, 제한 인원을 신청 인원과 동일하게 수정합니다.
코드
import sys
k, l = map(int, sys.stdin.readline().split())
# 수강신청이 들어온 순서대로 학번과 순서를 딕셔너리에 Key, Value로 저장
dict = {}
for i in range(l):
dict[sys.stdin.readline().rstrip()] = i
# 순서를 기준으로 오름차순 정렬
result = sorted(dict.items(), key = lambda x:x[1])
# 제한 인원보다 신청 인원이 적을 경우
if (k > len(result)):
# 제한 인원을 신청 인원과 동일하게 수정
k = len(result)
# 학번을 제한 인원만큼 출력
for i in range(k):
print(result[i][0])
'Algorithm > Hash' 카테고리의 다른 글
[Hash] 백준 1351번 “무한 수열” Python 풀이 (0) | 2022.12.10 |
---|---|
[Hash] 백준 9375번 “패션왕 신해빈” Python 풀이 (1) | 2022.12.10 |
Comments