IF문 좀 대신 써줘 - 실버 3 (백준, 이분탐색)

2023. 1. 18. 16:44코딩 테스트 준비

728x90
반응형

 

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)  # 이분탐색

이분탐색에 대해 생각을 제대로 안 해봤는데 익숙해질때까지 문제 푸는 리스트에 추가해둬야겠다.

테크닉을 잊지말자. 

728x90
반응형