[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])
"""