본문 바로가기

알고리즘/백준

[백준] 1920 수 찾기

문제 링크 : 

 

정렬 후 이분탐색을 활용해서 풀었다.

set을 활용하면 더 빠르다고는 생각했는데 문법을 몰라서 일단 이분탐색 코드도 오랜만에 작성해보려 했다.

 

내코드

if __name__ == '__main__':
    N = input()
    arr = list(map(int,input().rstrip().split()))
    query = input()
    order = list(map(int,input().rstrip().split()))
    arr.sort()

    for x in order:
        suc = False
        left = 0;right = len(arr)-1;
        while(left<=right):
            mid = int((left+right)/2)
            if(arr[mid]==x):
                suc = True
                print('1')
                break
            if(arr[mid] < x):
                left = mid+1
            else:
                right = mid-1
        if (suc == False):
            print('0')

 

set 활용 코드

# set을 이용한 풀이
if __name__ == '__main__':
N=input()
integer_list=set(input().split())
M=input()
find_value=input().split()

# 먼저 주어진 정수 값을 정렬해 준다.
result=''
for val in find_value:
    if val in integer_list:
        result+='1\n'
    else:
        result += '0\n'
        
print(result)

'알고리즘 > 백준' 카테고리의 다른 글

[백준] 2042 구간 합 구하기  (2) 2020.12.02
[백준] 1072 게임  (0) 2020.12.01
[백준] 1806 부분합  (0) 2020.11.24
[백준] 2470 두 용액  (0) 2020.11.19
[백준] 18228 펭귄추락  (0) 2020.11.11