판정 결과가 한 번만 바뀐다
단조성이 없으면 절반을 버리는 판단 자체가 성립하지 않습니다.
lower_bound와 firstTrue 계열은 `lo`, `hi`, `mid` 갱신보다 false 구간과 true 구간의 경계를 먼저 정의해야 합니다.
단조성이 없으면 절반을 버리는 판단 자체가 성립하지 않습니다.
템플릿을 섞지 않도록 반환 의미와 종료 조건을 같은 표기로 둡니다.
`arr[mid] < target`이면 mid는 답이 아니므로 `lo = mid + 1`입니다.
답이 없을 때 `n`을 반환하는지 문제 요구와 연결합니다.
0 반환이 삽입 위치로 맞는지 확인합니다.
`lower_bound`와 `upper_bound`의 조건식을 이름과 맞춥니다.
판정 함수가 흔들리면 무한 루프보다 먼저 모델을 의심합니다.