티스토리 뷰
728x90
https://www.acmicpc.net/problem/1920
- 해설 :
N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 문제이다.
- 풀이 :
A배열 안에 숫자가 들어있는지 찾는 문제이다. 배열의 길이와 찾는 숫자의 길이가 최대 100,000이므로 O(N^2)인
모든 원소에 대해 if X in A: 를 사용하면 안된다. 따라서 이분탐색으로 해당 원소가 배열 안에 있는지 찾도록 구현하였다.
- 소스코드 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import sys
input = sys.stdin.readline
if __name__ == "__main__":
N = int(input())
A = sorted(list(map(int,input().split())))
M = int(input())
B = list(map(int,input().split()))
for i in B:
start = 0
end = N-1
flag = False
while start <= end:
mid = (start + end) // 2
if A[mid] < i:
start = mid + 1
elif A[mid] > i:
end = mid - 1
else:
flag = True
print(1)
break
if not flag:
print(0)
|
cs |
320x100
'Algorithm > Binary Search' 카테고리의 다른 글
(Python/파이썬) - 백준(BOJ) 7795번 : 먹을 것인가 먹힐 것인가 (0) | 2022.04.06 |
---|---|
(Python) - BOJ(1072번) : 게임 (0) | 2022.02.21 |
(Python) - BOJ(2805번) : 나무 자르기 (0) | 2022.02.01 |
(Python) - BOJ(1654번) : 랜선 자르기 (0) | 2022.01.27 |
(Python) - 프로그래머스 : 입국심사 (0) | 2022.01.18 |
댓글
© 2022 WonSeok, All rights reserved