https://www.acmicpc.net/problem/1920
이 문제는 입력으로 저장해야 하는 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))
읽어 주셔서 감사합니다 :)
틀린 부분이 있다면 댓글로 편히 알려주세요😊
'PS > Python' 카테고리의 다른 글
[백준] 21610 - 마법사 상어와 비바라기 (파이썬, Python) (0) | 2021.09.22 |
---|---|
[Programmers] 합승 택시 요금 (파이썬, Python) (0) | 2021.09.21 |
[백준] 2644 - 촌수계산 (파이썬, Python) (0) | 2021.09.17 |
[백준] 15684 - 사다리 조작 (파이썬, Python) (0) | 2021.09.15 |
[Programmers] 신규 아이디 추천 (파이썬, Python) (0) | 2021.09.10 |