https://www.acmicpc.net/problem/13414
풀이 과정
- 학번을 키, 신청 인덱스를 값으로 하는 딕셔너리를 만들어 준다.
- 매 신청마다 인덱스를 1씩 증가시키면서 입력받은 키 값에 인덱스를 저장한다.
- 딕셔너리의 키-값을 값을 기준으로 오름차순 정렬시켜 준다.
- 딕셔너리의 값이 낮은 경우 먼저 수강신청 한 것이며, 값이 높은 경우 늦게 수강신청 한것으로 간주
- 정렬된 딕셔너리의 앞에서 L개의 원소를 꺼내면 해당 인원들이 수강신청되는 인원들이므로 출력해주면 된다.
소스 코드
import sys
input = lambda : sys.stdin.readline().rstrip()
K, L = map(int, input().split())
hashtable = dict()
idx = 0
for _ in range(L):
idx += 1
sid = input()
hashtable[sid] = idx
sugang_data = sorted(hashtable.items(), key=lambda x:x[1])
sugang_data = sugang_data[:K]
for student, _ in sugang_data:
print(student)
'알고리즘[Python] > 백준 알고리즘' 카테고리의 다른 글
[ 2251 ] [ BFS ] 물통 (0) | 2021.10.07 |
---|---|
[ 2812 ] [ Stack ] 크게 만들기 (0) | 2021.10.06 |
[ 1620 ] [ Hash ] 나는야 포켓몬 마스터 이다솜 (0) | 2021.10.03 |
[ 17406 ] [ 구현 ] 배열 돌리기 (0) | 2021.10.02 |
[ 17136 ] [ DFS ] 색종이 붙이기 (0) | 2021.09.30 |