[Python] 알고리즘/Silver

[13414] 수강신청 (Python)

-Becca- 2021. 11. 5. 15:01

[문제]

https://www.acmicpc.net/problem/13414

 

13414번: 수강신청

입력 데이터는 표준 입력을 사용한다. 입력은 1개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 과목의 수강 가능 인원 K(1 ≤ K ≤ 100,000)와 학생들이 버튼을 클릭한 순서를 기록한 대기목

www.acmicpc.net


알고리즘 분류는 자료 구조, 해시를 사용한 집합과 맵 입니다.

시간 제한이 1초이므로, input() 대신 sys.stdin.readline()을 사용하고 Dictionary를 사용해야 합니다.

(List로 하면 시간초과입니다.)


[코드]

import sys

K, L = map(int, sys.stdin.readline().split())

dt = dict()
for i in range(L):
    cn = sys.stdin.readline().rstrip()
    dt[cn] = i

dt = sorted(dt.items(), key=(lambda x: x[1]))

cnt = 0
for i in dt:
    if cnt == K:
        break
    print(i[0])
    cnt += 1
    
 """
 이 코드로 제출하면 런타임 에러(indexError)
 for i in range(K):
 	print(dt[i][0])
 """