19637번: IF문 좀 대신 써줘 (acmicpc.net)
단순 구현 -> 시간 초과
이진 탐색 코드로 제출 -> 시간 초과
뭐가 문젠가 했더니 입력받는 코드를 바꿔줬더니 통과됨
# 반복문으로 여러 번 입력받을 시 input() 대신 sys,stdin.readline()을 꼭 쓰자
# 각 캐릭터의 칭호를 찾을 때 이진 탐색
import sys
input = sys.stdin.readline
n,m=map(int,input().split())
level = []
for _ in range(n):
a, b = list(input().split())
level.append((a, int(b)))
def ubound(x):
left = 0
right = n-1
while left<right:
mid = (left + right) // 2
if x <= level[mid][1]:
right = mid
else:
left = mid+1
return level[left][0]
for _ in range(m):
x = int(input())
print(ubound(x))
'Koala - 15기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/java]- 구간 합 구하기 5 (0) | 2024.07.28 |
---|---|
[백준/c++] 2110번 : 공유기 설치 (0) | 2024.07.28 |
[백준/Python] 16401번: 과자 나눠주기 (0) | 2024.07.25 |
[백준/Python] #27496 발머의 피크 이론 (0) | 2024.07.25 |
[백준/c++] 1874번: 스택 수열 (0) | 2024.07.23 |