-Code
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
IF = [input().split() for _ in range(n)]
for _ in range(m):
num = int(input())
left, right = 0, n
while left < right:
mid = (left + right) // 2
if int(IF[mid][1]) >= num:
right = mid
else:
left = mid + 1
print(IF[right][0])
처음에 못 풀었던 문제여서 분류를 보니 이분 탐색이어서 이분 탐색으로 풀다가 mid를 출력하는 것에서 막혀서 해당 부분만 찾아서 해결을 했습니다. 또한 sys입력을 사용하지 않으면 시간 초과가 발생합니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬] 16401번 과자 나눠주기 (0) | 2022.05.19 |
---|---|
[백준/파이썬] 16960번 스위치와 램프 (0) | 2022.05.19 |
[프로그래머스/파이썬] 다음 큰 숫자 (0) | 2022.05.18 |
[프로그래머스/파이썬] JadenCase 문자열 만들기 (0) | 2022.05.18 |
[프로그래머스/파이썬] 삼각 달팽이 (0) | 2022.05.18 |