반응형
1. 문제
2. 코드
num = [0 for _ in range(20000000)]
n = int(input())
n_list = list(map(int, input().split()))
for i in n_list:
num[i+10000000] = 1
m = int(input())
m_list = list(map(int, input().split()))
for i in m_list:
print(num[i+10000000], end = ' ')
3. 설명
주요 포인트는 -10000000 ~ 10000000까지의 숫자 범위이므로 총 20000000칸의 list를 만들어서 계산한다.
무슨 말인지 모르겠다면 아래의 예시를 보자.
즉 input이 5개 숫자이고, 5, 8, 9, -10, 10이라면
num[10000005] (5 + 10000000), num[10000008] (8+10000000), num[10000009] (9+10000000), num[9999990] (-10 + 10000000), num[10000010] (10 + 10000000) 을 1로 만들어주고,
다음으로 테스트할 숫자가 3개, 5, 3, 100이라면
num[10000005] (5 + 10000000), num[10000003] (3 + 10000000), num[10000100] (100 + 10000000)이 각각 1인지, 0인지 확인하면된다.
1이라면 이미 상근이가 가지고 있는 숫자카드인 것이고, 0이라면 가지고 있지 않은 것이다.
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 11478번 - 서로 다른 부분 문자열의 개수 (파이썬) (0) | 2022.08.17 |
---|---|
[백준] 14425번 - 문자열 집합 (python 파이썬) (0) | 2022.08.15 |
[백준] 10866번 - 덱 (0) | 2022.02.14 |
[백준] 11718번 - 그대로 출력하기 (파이썬) (0) | 2022.02.09 |
[백준] 1094번 - 막대기 (파이썬) (0) | 2022.02.08 |