감자튀김 공장🍟

[백준/10816] 숫자 카드 2 (with 파이썬) 본문

Algorithm/BOJ

[백준/10816] 숫자 카드 2 (with 파이썬)

Potato potage 2022. 12. 3. 22:48
반응형

✔ 문제


풀이

import sys
input = sys.stdin.readline

n = int(input())
cards = list(map(int, input().split()))
m = int(input())
check = list(map(int, input().split()))
dict = {}

for i in range(n):
    if cards[i] not in dict:
        dict[cards[i]] = 1
    else:
        dict[cards[i]] += 1

for j in check:
    if j in dict:
        print(dict[j], end=' ')
    else:
        print(0, end=' ')

 


✔ 설명

10815번과 비슷한 문제지만 카드의 개수를 구하여 출력하는 점이 다르다.

전과 똑같이 dictionary를 사용했으며 cards에 있는 값이 dict에 없다면 1을, 이미 dict에 있다면 +1을 하여 숫자를 셌다.


✔ 후기

처음 코드에서는 key error가 나길래 딕셔너리는 값 변경이 안되던가?? 아닌데?? 하다가 방법을 찾았다..ㅎㅎ

리스트에 비해 많이 사용을 안해봐서 버벅거렸던 것 같다.

다른 코드들은 똑같이 이진 탐색을 사용하던가 Counter 라이브러리를 사용했는데 딕셔너리로 해도 시간 초과가 안난다면 그대로 해보고 싶어서 딕셔너리로 풀어봤다. 시간도 664ms 걸려서 나름 안정권이라고 생각한다.

반응형
Comments