오늘의 인기 글
최근 글
최근 댓글
Today
Total
05-09 00:00
관리 메뉴

우노

[Hash] 백준 13414번 “수강신청” Python 풀이 본문

Algorithm/Hash

[Hash] 백준 13414번 “수강신청” Python 풀이

운호(Noah) 2022. 12. 10. 03:01

문제 링크

풀이

  • 중복 신청된 학번은 뒤로 밀린다는 것을 고려해,
  • 수강신청이 들어온 순서대로, 학번과 순서를 딕셔너리에 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])
Comments