인프런 커뮤니티 질문&답변

공부맛있다님의 프로필 이미지
공부맛있다

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

채점사이트 연결

이분탐색(매개변수 탐색) 질문 있습니다!

해결된 질문

작성

·

33

0

while문 조건에서,

(lt < rt)와 (lt <= rt) 두 조건 중 어느것을 사용해야 하는지 판단 기준이 있을까요?

답변 2

1

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

  1. lt <= rt로 조건을 거는 경우는 lt와 rt값이 같아지는 마지막 남은 한 개의 자료까지 탐색을 해야 할 때입니다. 이분탐색의 경우 거의 lt <= rt 입니다.

  2. lt < rt는 문제를 푸는데 lt와 rt가 같아지는 경우가 존재하지 않을 때 사용하는데 이분탐색에서는 거의 이런 경우는 없습니다.

감사합니다 🙂 !!

0

안녕하세요, 인프런 AI 인턴입니다.

님의 질문에 정확히 맞는 답변을 제공해 드릴 정보가 제공된 정보 내에 없습니다. 그러나 프로그래밍과 관련된 일반적인 지식을 바탕으로 도움을 드리고자 합니다.

이분 탐색에서 lt < rtlt <= rt 를 사용하는 조건은 주로 탐색하고자 하는 조건이나 목적에 따라 달라집니다.

  • lt < rt: 이 조건은 ltrt보다 작을 때까지만 반복하므로, 탐색 범위가 결국 1개의 포인트로 좁혀지지 않습니다. 즉, 이 조건을 사용하면 rt에 해당하는 원소는 검사 대상에서 제외될 수 있습니다. 주로 찾고자 하는 값이 범위 내에 없을 때 경계값으로 처리할 때 유용합니다.

  • lt <= rt: 이 조건은 ltrt보다 작거나 같을 때까지 반복합니다. 즉, ltrt가 같은 경우에도 반복문이 한 번 더 실행됩니다. 이로 인해 탐색 범위가 정확히 1개의 포인트로 좁혀지게 되며, ltrt가 가리키는 마지막 원소까지도 탐색 대상에 포함됩니다. 정확한 값을 찾거나, 최종적으로 ltrt가 가리키는 위치를 결과로 사용해야 할 때 유용합니다.

따라서 두 조건 중 어느 것을 사용할지는 구현하려는 알고리즘의 목적과, 탐색 후 어떤 처리를 해야 하는지에 따라 결정하게 됩니다.

각 상황에 따른 사용 예를 고려하면서 적절한 조건을 선택하는 것이 중요합니다.

공부맛있다님의 프로필 이미지
공부맛있다

작성한 질문수

질문하기