문제
https://www.acmicpc.net/problem/13414
주요 아이디어
대기 목록을 전달받고, 중복이 되어있을 경우 대기목록의 맨 뒤로 가야 한다.
- 입력을 받는 순서대로 dictionary에 추가한다
- 이미 있을 경우 (뒤로 밀려나기 때문에) dict의 value가 갱신된다
코드 구현 (Python 3)
더보기
import sys
def solution(k, l):
students = [sys.stdin.readline().strip() for i in range(l)]
student_dict = {}
# dictionary 추가 ('학번' : '순서')
for i, student in enumerate(students):
student_dict[student] = i
# value (들어온 순서) 에 따라서 정렬
student_dict = sorted(student_dict.items(), key=lambda x: x[1])
# 선착순으로 자르기
for student in student_dict[:k]:
print(student[0])
return
k, l = map(int, sys.stdin.readline().split())
solution(k, l)
제출 결과
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ] 15686. 치킨 배달 (0) | 2024.06.25 |
---|---|
[BOJ] 15683. 감시 (1) | 2024.05.21 |
[BOJ] 1806. 부분합 (0) | 2024.05.21 |
[BOJ] 9466. 텀 프로젝트 (0) | 2024.04.24 |
[BOJ] 12852. 1로 만들기 2 (0) | 2024.04.24 |