목차

수업

ps
링크acmicpc.net/…
출처BOJ
문제 번호19700
문제명수업
레벨골드 1
분류

이분 탐색

시간복잡도O(nlogn)
인풋사이즈n <= 500,000
사용한 언어Python 3.13
제출기록104428KB / 936ms
최고기록936ms
해결날짜2025/12/17

풀이

코드

"""Solution code for "BOJ 19700. 수업".

- Problem link: https://www.acmicpc.net/problem/19700
- Solution link: http://www.teferi.net/ps/problems/boj/19700

Tags: [binary search]
"""

import sys
import bisect


def main():
    N = int(sys.stdin.readline())
    h, k = [], []
    for _ in range(N):
        h_i, k_i = [int(x) for x in sys.stdin.readline().split()]
        h.append(h_i)
        k.append(k_i)

    group_sizes = []
    sorted_inds = sorted(range(N), key=h.__getitem__, reverse=True)
    for i in sorted_inds:
        pos = bisect.bisect_right(group_sizes, -k[i])
        if pos == len(group_sizes):
            group_sizes.append(-1)
        else:
            group_sizes[pos] -= 1

    print(len(group_sizes))


if __name__ == '__main__':
    main()