PS/백준

[백준] 11663 - 선분 위의 점

Mingi Kim 2024. 7. 4. 10:30

문제 링크

https://www.acmicpc.net/problem/11663

느낀 점

이분 탐색의 개념이 아직 정확하게 확립이 안된 것 같은 느낌.. 그리고 등호 하나 반환 값 하나에 따라 결과가 천차만별로 달라지니 이것을 유의해서 이분 탐색 문제를 접근하자!

import sys
def min_p(min):
    s, e = 0, len(dot) - 1
    while s <= e:
        m = (s + e) // 2
        if dot[m] < min:
            s = m + 1
        else:
            e = m - 1
    return e + 1

def max_p(max):
    s, e = 0, len(dot) - 1
    while s <= e:
        m = (s + e) // 2
        if dot[m] <= max:
            s = m + 1
        else:
            e = m - 1
    return e

N, M = map(int, sys.stdin.readline().split())
dot = sorted(list(map(int, sys.stdin.readline().split())))
for _ in range(M):
    M_list = list(map(int, sys.stdin.readline().split()))
    max_ind = max_p(M_list[-1])
    min_ind = min_p(M_list[0])
    print(max_ind - min_ind + 1)