시간제한 1초, 입력 최대길이가 500,000이므로 Queue 연산과정에 소요되는 Overhead가 크다.
📌자료구조
success (dictionary) (key:학번, value:순서번호): 학번과 순서를 저장한 딕셔너리
order (int) : 수강신청 순서번호를 의미하는 변수
cnt (int) : 수강정원을 count하는 변수
📌해결과정
수강인원 k, 클릭 대기목록 수 l을 입력받는다.
대기목록을 입력 받으며 딕셔너리에 key는 입력받은 학번, value는 순서번호 order를 저장한다.
입력이 끝난 후 딕셔너리를 order에 따라 정렬한다.
작은 order 순으로 학번을 출력하고, cnt 개수가 수강정원 k에 도달하면 종료한다.
import sys
import operator
k, l = map(int, input().split())
success = dict()
order = 1
for _ in range(l):
student = sys.stdin.readline().strip()
success[student] = order
order += 1
success = sorted(success.items(), key = operator.itemgetter(1))
cnt = 0
for key, value in success:
if cnt == k:
break
print(key)
cnt+=1