사용자 도구

사이트 도구


ps:teflib:binsearch

binsearch.py

minimum_valid_integer

코드

# N minimum_valid_integer
# I {"version": "2.0", "import": ["bisect"], "abc": ["Callable"]}
def minimum_valid_integer(beg: int, end: int, is_valid: Callable[[int],
                                                                 bool]) -> int:
    """Returns the minimum int X in [beg, end) where is_valid(X) is true."""
    if not is_valid(end - 1):
        raise ValueError
    return bisect.bisect_left(
        type('X', (), {'__getitem__': lambda self, x: is_valid(x)})(), True,
        beg, end - 1)

설명

이 코드를 사용하는 문제

출처문제 번호Page레벨
BOJ23318행렬분할골드 5
BOJ23331행렬분할 2플래티넘 4

maximum_valid_integer

코드

# N maximum_valid_integer
# I {"version": "2.0", "import": ["bisect"], "abc": ["Callable"]}
def maximum_valid_integer(beg: int, end: int, is_valid: Callable[[int],
                                                                 bool]) -> int:
    """Returns the maximum int X in [beg, end) where is_valid(X) is true."""
    if not is_valid(beg):
        raise ValueError
    return bisect.bisect_right(
        type('X', (), {'__getitem__': lambda self, x: not is_valid(x)})(),
        False, beg, end - 1) - 1

설명

이 코드를 사용하는 문제

출처문제 번호Page레벨
BOJ1654랜선 자르기실버 3
BOJ6209제자리 멀리뛰기골드 2
프로그래머스43236징검다리Level 4

토론

댓글을 입력하세요:
L G V G L
 
ps/teflib/binsearch.txt · 마지막으로 수정됨: 2022/04/22 13:46 저자 teferi