정렬 배열에서 target과 같은 값이 여러 개입니다. upper_bound로 동등 구간과 부재를 어떻게 구분하나요?
꼬리 질문을 독립 문항으로 확장했습니다. 원래 문항에서 맥락 보기 →
잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?
답변과 점검 포인트 펼치기답변 접기
01
구두 답변
정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.
lower_bound는 target 이상 첫 위치, upper_bound는 target보다 큰 첫 위치입니다. 정렬 기준이 같다면 두 경계의 차이는 같은 값의 개수를 나타내며 둘이 같으면 그 값이 없습니다.
[1,2,2,4]에서 2의 구간은 [1,3), 3의 두 경계는 모두 3입니다. upper_bound는 mid 값이 target 이하일 때 왼쪽을 버립니다. 반환 n은 합법적인 삽입 위치지만 원소 접근 가능한 인덱스는 아니므로 후속 코드를 따로 검사합니다.
02
득점 포인트
이해가 드러나는 지점을 확인해 보세요.
- lower_bound는 target 이상 첫 위치, upper_bound는 target보다 큰 첫 위치입니다. 정렬 기준이 같다면 두 경계의 차이는 같은 값의 개수를 나타내며 둘이 같으면 그 값이 없습니다.
- 반환 n은 합법적인 삽입 위치지만 원소 접근 가능한 인덱스는 아니므로 후속 코드를 따로 검사합니다.
03
감점 포인트
놓치기 쉬운 조건과 오해를 짚어 보세요.
- 다음 핵심 구분을 반대로 설명하거나 성립 조건을 생략한다: lower_bound는 target 이상 첫 위치, upper_bound는 target보다 큰 첫 위치입니다.
04
더 파고들 거리
하나 더 질문하며 이해의 범위를 넓혀 보세요.
득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.
원리부터 공부하고 싶다면
답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.