본문 바로가기
카테고리 없음

[BOJ 10815] 숫자카드 파이썬 풀이

2019. 8. 28.
반응형

 

 

10815번: 숫자 카드

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이가 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 두 숫자 카드에 같은 수가 적혀있는 경우는 없다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 가지고 있는 숫자 카드인지 아닌지를 구해야 할 M개의 정수가 주어지며, 이

www.acmicpc.net

이전에 포스팅한 1920 수찾기 문제와 상당히 비슷한 문제입니다.

 

[BOJ 1920] 수 찾기 파이썬 풀이

1920번: 수 찾기 첫째 줄에 자연수 N(1≤N≤100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤100,000)이 주어진다. 다음 줄에는 M개의 수들이..

deepwelloper.tistory.com

풀이

N = int(input())
cards = list(map(int, input().split()))
M = int(input())
qs = list(map(int, input().split()))

hashtable = {}
answers = []

for card in cards:
    key = (card+10000000)%10000
    if key in hashtable:
        hashtable[key].append(card)
    else:
        hashtable[key] = [card]

for q in qs:
    found = 0
    key = (q+10000000)%10000
    if key in hashtable:
        for h in hashtable[key]:
            if q == h:
                found = 1
                break
    answers.append(found)

print(*answers)
반응형

댓글