문제 링크 :
정렬 후 이분탐색을 활용해서 풀었다.
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 |