[Boj문제풀이]

[Boj/백준] 22252 Python

ki7348 2021. 9. 17. 01:37

문제 출처: https://www.acmicpc.net/problem/22252

 

22252번: 정보 상인 호석

암흑가의 권력은 주먹과 정보에서 나온다. 주먹은 한 명에게 강하고, 정보는 세계를 가지고 놀 수 있기 때문에 호석이는 세상 모든 정보를 모으는 "정보 상인"이 되고 싶다. 정보 상인은 정보를

www.acmicpc.net

 

 

1. 문제 접근 방식

name을 보고 해시를 사용하겠다고 생각했고, 루프를 돌면서 name이 존재한다면 heappush를 해주고

name이 없다면 추가를 해줬다.

 

 

2. 내가 푼 코드

import sys
import heapq

case = int(sys.stdin.readline())
hash = {}
sum = 0

def minus(x):
    return -1*x

for _ in range(case):
    gor_list = sys.stdin.readline().split()
    if int(gor_list[0]) == 1:
        name = gor_list[1]
        value = list(map(int, gor_list[3:]))
        target = list(map(minus,value))
        if name in hash:
            for i in target:
                heapq.heappush(hash[name],i)
        else:
            hash[name]=target
    else:
        name = gor_list[1]
        num = int(gor_list[2])
        if name in hash:
            for i in range(min(num,len(hash[name]))):
                a = heapq.heappop(hash[name])
                sum+=abs(a)

                
print(sum)

 

 

3. 결과 및 느낀점

푸는데 상당히 시간이 오래걸렸다.

해시 문제는 딕셔너리를 사용해야 시간복잡도 측면에서 효율적일 것 같다.

이번에 풀면서 딕셔너리의 메소드랑 map함수에 대해서 공부를 했는데 정리를 해두자.

또, 처음에 입력 받는 부분을 어떻게 처리할지 고민했는데

다 한번에 split으로 받고 인덱스로 접근해서 변수를 만드는 것이 괜찮앗다.

복습을 잘해야 하는 문제일 것 같다

'[Boj문제풀이]' 카테고리의 다른 글

[Boj/백준] 2644 Python  (0) 2021.09.20
[Boj/백준] 21773 Python  (0) 2021.09.18
[Boj/백준] 13975 Python  (0) 2021.09.16
[Boj/백준] 19598 Python  (0) 2021.09.15
[Boj/백준] 19638 Python  (0) 2021.09.14