PS/Python
[백준] 1920 - 수 찾기 (파이썬, Python)
w00se
2021. 9. 19. 19:24
https://www.acmicpc.net/problem/1920
1920번: 수 찾기
첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들
www.acmicpc.net
이 문제는 입력으로 저장해야 하는 N개의 숫자와 찾아야 하는 M개의 숫자가 주어지고, 각각의 찾아야 하는 수가 저장한 수 목록에 존재하는지 확인하는 것이 목표입니다.
문제를 해는 방법은 다양하게 존재하지만 저는 이분 탐색으로 문제를 해결했습니다.
전체 코드
제출 언어: Python3
시간: 600ms
import sys
def findNum(target):
global N, num_list
res = 0
left, right = 0, N-1
while left <= right:
mid = (left+right) // 2
if num_list[mid] == target:
res = 1
break
elif num_list[mid] < target:
left = mid+1
else:
right = mid-1
return res
if __name__ == "__main__":
N = int(sys.stdin.readline().strip())
num_list = sorted(map(int, sys.stdin.readline().strip().split()))
M = int(sys.stdin.readline().strip())
target_list = map(int, sys.stdin.readline().strip().split())
for t in target_list:
print(findNum(t))
읽어 주셔서 감사합니다 :)
틀린 부분이 있다면 댓글로 편히 알려주세요😊