수 찾기 문제 + 같은 수가 얼마나 존재하는가 찾는 문제이다. 이 문제는 저번 문제 + 카운팅을 그대로 해주면 최악의 상황엔 같은 수가 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

+ Recent posts