개발지식 먹는 하마 님의 블로그
[내일배움캠프 15일차] _ lower_bound vs find 본문
키오스크를 lv4 중반까지 구현을 마쳤다.
아직까지는 딱히 어려운 부분이 없어서 적을만한 내용이 없다.
📚 학습 내용 정리
- 프로그래머스 - 서울에서 김서방 찾기
따로 정리할 정도의 난이도 있는 문제는 아니고 그냥 한 번 짚고 넘어가면 좋을 것 같은 내용이 있어서 적어보았다.
https://school.programmers.co.kr/learn/courses/30/lessons/12919프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
C++ algorithm.h는 lower_bound와 find라는 함수를 지원한다.
둘 다 매개변수가 존재하는 위치를 찾아 반복자 *iter를 반환한다는 공통점이 있다.

배열의 길이가 1000이하이기 때문에 단순히 반복문으로 Kim의 위치를 찾아도 문제는 없다.
그런데 그동안 다른 사람들의 코드를 참고하다보니 다들 최대한 짧게 쓰려는 경향이 있었다.
이미 존재하는 함수를 쓰면 for문을 직접 쓸 필요가 없기 때문에 코드가 보기에는 짧아진다.
그래서 나도 내가 아는 함수 lower_bound를 쓰기로 했다. (짧게 쓰기 위해서)
근데 일부 테스트 케이스에서 틀렸다는 결과가 나왔다.
반복문으로 풀이한 후, 다른 사람의 코드를 참고하니 lower_bound 대신 find라는 함수를 사용한 것을 확인할 수 있었다.
lower_bound 대신 find를 사용해야 하는 이유!
- lower_bound는 정렬된 데이터에 대해서 사용하지 않으면 제대로 된 결과가 나오지 않을 수 있다.
- lower_bound는 입력값과 같거나 바로 다음으로 큰 값의 위치를 찾는다.
(Kim 대신 엉뚱한 값을 찾을 가능성이 있는 것!)
따라서 위의 문제에서는 find를 사용하는 것이 더 적합하다!
⭐ 내일 학습할 것
키오스크 프로그램의 남은 부분을 최대한 구현할 예정이다.
'내일배움캠프 (CS25)' 카테고리의 다른 글
[내일배움캠프 17일차] _ 거리두기 확인하기 문제 풀이 (0) | 2025.03.12 |
---|---|
[내일배움캠프 16일차] _ Enum & 리팩토링 (0) | 2025.03.11 |
[내일배움캠프 14일차] _ 수학적으로 더 간편하게 풀기, Git 커밋 컨벤션 (0) | 2025.03.07 |
[내일배움캠프 13일차] _ GUI 계산기 구현, 트러블 슈팅 (0) | 2025.03.06 |
[내일배움캠프 12일차] _ 시소 짝꿍 풀이, GUI 계산기 입력 제한 구현 (0) | 2025.03.05 |