본문 바로가기
알고리즘/BOJ

[BOJ] 13414. 수강신청

by ㅣlㅣl 2024. 5. 21.

문제

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