수 찾기 문제 + 같은 수가 얼마나 존재하는가 찾는 문제이다. 이 문제는 저번 문제 + 카운팅을 그대로 해주면 최악의 상황엔 같은 수가 N개가 있으면 시간 초과가 나기 때문에, 다른 방법을 생각해보아야 하는데 여기서 쓸 수 있는 테크닉이 있다.
이분 탐색? 인지 단조 증가하는 수열의 성질인지 잘 모르겠으나 정렬하고 나면 같은 수들 끼린 붙어있게 되어있다. 여기서 맨 왼쪽에 있는 수와 맨 오른쪽에 있는 수의 index의 차를 구해주면, 결국 그것이 같은 수들의 개수가 된다. 이것을 각 각 lower_bound, upper_bound 라고 하는데, 그러므로 upper_bound - lower_bound 를 구해주면 그것이 정답이다.
'PS > baekjoon' 카테고리의 다른 글
[BOJ 1431] 시리얼 번호 (0) | 2023.07.16 |
---|---|
[BOJ 2295] 세 수의 합 (2) | 2023.07.03 |
[BOJ 1920] 수 찾기 (0) | 2023.07.03 |
[BOJ 9663] N-Queen (0) | 2023.07.03 |
[BOJ 7562] 나이트의 이동 (0) | 2023.07.02 |