728x90
반응형
이분 탐색 문제이다.
sys.stdin.readline 함수를 사용해서 입력을 받지 않으면 이분 탐색 알고리즘을 사용해도 시간초과가 나온다.
import sys
def bs(li, n):
s, e = 0, len(li)-1
res = 0
while s <= e:
m = (s+e)//2
if int(li[m][1]) >= n:
e = m-1
res = m
else:
s = m+1
return res
N, M = map(int, sys.stdin.readline().split())
li = [sys.stdin.readline().split() for _ in range(N)]
for _ in range(M):
n = int(sys.stdin.readline())
print(li[bs(li, n)][0])
728x90
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 16564번 히오스 프로게이머(python) (0) | 2021.02.28 |
---|---|
백준 알고리즘 16401번 과자 나눠주기(python) (0) | 2021.02.28 |
백준 알고리즘 1166번 선물(python) (2) | 2021.02.28 |
백준 알고리즘 16561번 3의 배수(python) (0) | 2021.02.28 |
백준 알고리즘 16673번 고려대학교에는 공식 와인이 있다(python) (0) | 2021.02.28 |