코딩테스트/백준
백준[1920] - 수 찾기
문제
작성한 코드
import sys
input = sys.stdin.readline
N = int(input())
A = list(map(int, input().split()))
A.sort()
M = int(input())
X = list(map(int, input().split()))
for value in X:
lt = 0
rt = N-1
isExit = False
while lt<=rt:
mid = (lt+rt)//2
if value == A[mid]:
print(1)
isExit = True
break
elif value > A[mid]:
lt = mid + 1
else:
rt = mid - 1
if not isExit:
print(0)
- 이분탐색 연습을 위한 문제이기 때문에, 이분탐색으로 풀어보았다.
- lt와 rt는 인덱스 번호로 잡았고, lt는 처음 인덱스인 0 / rt는 A의 끝 인덱스인 N-1로 초기값을 세팅해주었다.
- 존재하면 1, 존재하지 않으면 0을 출력해야했기 때문에 Boolean 타입의 변수인 isExit을 활용하여 print() 해주었다.
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
백준[10816] - 숫자 카드 2 (0) | 2023.05.09 |
---|---|
백준[2178] - 미로탐색 (0) | 2023.03.08 |
백준[1012] - 유기농 배추 (0) | 2023.03.08 |
백준[2667] - 단지번호붙이기 (0) | 2023.03.04 |
백준[1260] - DFS와 BFS (0) | 2023.03.04 |
댓글