728x90
https://www.acmicpc.net/problem/13414
13414번: 수강신청
입력 데이터는 표준 입력을 사용한다. 입력은 1개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 과목의 수강 가능 인원 K(1 ≤ K ≤ 100,000)와 학생들이 버튼을 클릭한 순서를 기록한 대기목
www.acmicpc.net
길이가 긴 입력의 경우, input() 보다는 sys.stdin.readline() 을 사용하는게 더 빠릅니다. 나머지는 Dict 자료구조를 사용하면 쉽게 해결할 수 있습니다.
import sys
from collections import defaultdict
def solution(K, L, data_list):
# 수강 대기 목록 사전
wait_dict = defaultdict(int)
# 사전 최신화
for idx, data in enumerate(data_list):
wait_dict[data] = idx
# 사전 정렬
wait_dict_list = sorted(wait_dict.items(), key=lambda x:x[1])
# 출력
for idx, (key, value) in enumerate(wait_dict_list):
if idx == K:
break
print(key.strip())
K, L = map(int, sys.stdin.readline().split())
data_list = [sys.stdin.readline() for _ in range(L)]
solution(K, L, data_list)
728x90
'Coding Test > BaekJoon_Python' 카테고리의 다른 글
백준 25192 <인사성 밝은 곰곰이> Python (0) | 2023.11.26 |
---|---|
백준 7785 <회사에 있는 사람> Python (0) | 2023.11.25 |
백준 20057 <마법사 상어와 토네이도> Python (0) | 2023.11.24 |
백준 15686 <치킨 배달> Python (2) | 2023.11.23 |
백준 3190 <뱀> Python (0) | 2023.11.22 |