[Baekjoon] 1920. 수 찾기

mj·2024년 5월 3일
0

코딩테스트문제

목록 보기
9/50

1920. 수 찾기

  • 입력:
    N
    N개의 정수
    M
    M개의 수 -> 이 수들이 A안에 존재하는지

  • 출력:
    M개의 줄에 답 출력 1/0



🔍 틀린 나의 코드1 (시간초과)

n = int(input())
n_list = list(map(int, input().split()))

m = int(input())
m_list = list(map(int, input().split()))

for i in m_list:
    if i in n_list: print(1)
    else: print(0)


🔍 나의 코드2

n = int(input())
n_list = list(map(int, input().split()))

m = int(input())
m_list = list(map(int, input().split()))

set_a = set(m_list) & set(n_list) #m과 n에 공통으로 들어있는 수

for i in m_list:
    if i in set_a: print(1)
    else: print(0)
  • n과 m의 범위가 1 ≤ N,M ≤ 100,000이므로 i가 n_list에 있는지 하나씩 탐색하려면 시간이 많이 걸릴것이라고 생각해 집합을 사용해보기로 함.
  • 집합의 &연산자를 사용함.(두 집합에 공통으로 포함된 값)


🔍 다른 코드

N = int(input())
A = set(input().split())
M = int(input())
print('\n'.join('1' if num in A else '0' for num in input().split()))
profile
일단 할 수 있는걸 하자.

0개의 댓글