[Python] BOJ 19637번. IF문 좀 대신 써줘

19637번. IF문 좀 대신 써줘

문제 링크

풀이 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 19637번. IF문 좀 대신 써줘


import sys
input = sys.stdin.readline

n, m = map(int, input().split())
powerList = []
nameList = []
for i in range(n):
    name, power = input().split()
    power = int(power)
    if powerList and powerList[-1] == power:  # 가장 처음 칭호만 저장해주기 위해
        continue
    powerList.append(power)
    nameList.append(name)


def binary_search(p):
    left = 0
    right = len(powerList) - 1
    while left <= right:
        mid = (left + right) // 2
        if p > powerList[mid]:
            left = mid + 1
        else:
            right = mid - 1
    print(nameList[right+1])


mList = []
for _ in range(m):
    p = int(input())
    binary_search(p)  # 이분탐색

비고