[Python] 백준1920 수 찾기

[Python] 백준1920 수 찾기

백준1920 수 찾기 링크

문제

문제

예제 입력

예제


코드

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

m = int(input())
ans_list = list(map(int, input().split()))
num_list.sort()

for ans in ans_list:
    flag = False
    l, r = 0, n-1
    while l <= r:
        mid = (l + r) // 2
        if ans == num_list[mid]:
            flag = True
            print(1)
            break
        elif ans > num_list[mid]:
            l = mid + 1
        else:
            r = mid - 1

    if not flag:
        print(0)

설명

파이썬을 통해서 사용자로부터 입력받아 이진탐색으로 찾아서 값이 존재한다면 1을 출력하고 없으면 0을 출력합니다.


정리

n = int(input())
# zero_list = [0 for _ in range(n)]
num_list = set(map(int, input().split()))
# arr = [ list(map(int, input().split())) for _ in range(n)]
# arr = [[0]*m for _ in range(n)]

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

for ans in ans_list:
    print(1) if ans in num_list else print(0)

그 외에도, set라는 자료형은 집합같은 개념으로 사용하여 그 안에 값이 있는지 확인할 수 있습니다.


결과

결과


© 2022. All rights reserved. 신동민의 블로그