본문 바로가기
알고리즘/[python] 백준 BOJ

[python] 백준 21939 문제 추천 시스템 Version 1

by Alan_Kim 2023. 8. 30.
728x90
반응형

https://www.acmicpc.net/problem/21939

 

21939번: 문제 추천 시스템 Version 1

tony9402는 최근 깃헙에 코딩테스트 대비 문제를 직접 뽑아서 "문제 번호, 난이도"로 정리해놨다. 깃헙을 이용하여 공부하시는 분들을 위해 새로운 기능을 추가해보려고 한다. 만들려고 하는 명령

www.acmicpc.net

 

문제 해결

  • Hash 맵을 통해 문제 번호를 알면 문제 난의도를 바로 알 수 있도록 매핑한다.
  • 문제 난이도를 알면 그 난이도 문제 번호들을 알 수 있도록 int-list 매핑을 한다.
  • recommend == 1일 때는 어려운 난이도부터 살펴보고 recommend ==-1은 쉬운 난이도부터 문제가 있는지 살펴보도록 구현한다.

 

CODE

import sys
input = sys.stdin.readline
from collections import defaultdict


n = int(input())
pro = defaultdict(list)
hash = defaultdict(int)
for _ in range(n):
    p, l = map(int, input().split())
    pro[l].append(p)
    hash[p] = l
m = int(input())
for _ in range(m):
    tmp = list(input().split())
    if tmp[0] == 'add':
        p = int(tmp[1])
        l = int(tmp[2])
        pro[l].append(p)
        hash[p] = l
    elif tmp[0] =='recommend':
        if int(tmp[1]) == 1:
            for i in range(100,0,-1):
                if len(pro[i]):
                    print(max(pro[i]))
                    break
        else:
            for i in range(1,101,1):
                if len(pro[i]):
                    print(min(pro[i]))
                    break
    elif tmp[0] == 'solved':
        num = int(tmp[1])
        c = hash[num]
        del pro[c][pro[c].index(num)]
        hash[num]=None

 

728x90
반응형

'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글

[python] 백준 7490 0 만들기  (0) 2023.09.07
[python] 백준 3055 탈출  (0) 2023.09.04
[python] 백준 1201 NMK  (2) 2023.08.27
[python] 백준 2671 잠수함식별  (0) 2023.08.26
[python] 백준 17386 선분 교차 1  (0) 2023.08.25

댓글