[이코테][Java] 정렬된 배열에서 특정 수의 개수 구하기
·
PS/이코테
문제 설명N개의 원소를 포함하고 있는 수열이 오름차순으로 정렬되어 있을 때, 이 수열에서 x가 등장하는 횟수를 계산하세요.예를 들어 수열 {1, 1, 2, 2, 2, 2, 3}이 있을 때 x=2라면, 4를 출력시간복잡도 O(log N)으로 알고리즘을 설계하지 않으면 '시간초과 판정' 입력조건첫째 줄에 N과 x둘째 줄에 n개의 원소출력조건수열에서 값이 x인 원소의 개수값이 x인 원소가 없다면 -1입출력 예시입력예시출력예시7 21 1 2 2 2 2 347 41 1 2 2 2 2 3 -1 문제 풀이 시간복잡도 O(log N) 로 설계해야하기 때문에 순차 탐색으로는 풀 수 없다. → 이진탐색으로 풀이x가 처음으로 등장하는 위치와 마지막 위치를 찾아서 빼주면 x의 개수를 구할 수 있다.firstIndex()..