티스토리 뷰

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <cstdio>
#include <algorithm>
using namespace std;
 
int binary_search(int* arr, int start, int endint number) {
    int position = (start + end/ 2;
    if (start > end)
        return 0;
    else if (arr[position] == number) {
        if (arr[start] == number) {
            return position - start + 1 + binary_search(arr, position + 1end, number);
        }
        if (arr[end== number) {
            return end - position + 1 + binary_search(arr, start, position - 1, number);
        }
        return binary_search(arr, start, position - 1, number) + binary_search(arr, position + 1end, number) + 1;
    }
    else if (arr[position] > number)
        return binary_search(arr, start, position - 1, number);
    else
        return binary_search(arr, position + 1end, number);
}
 
int main() {
    int N, M, tmp;
    scanf("%d"&N);
    int* arr = new int[N];
    for (size_t i = 0; i < N; i++)
        scanf("%d"&arr[i]);
    sort(arr, arr + N);
    scanf("%d"&M);
    for (size_t i = 0; i < M; i++) {
        scanf("%d"&tmp);
        int range = binary_search(arr, 0, N - 1, tmp);
        printf("%d ", range);
    }
    return 0;
}
cs

 

'algorithm'''problem solve' 카테고리의 다른 글

[백준]10845-큐(설명X)  (0) 2020.02.01
[백준]10828-스택(설명X)  (0) 2020.02.01
[백준]9012-괄호(설명X)  (0) 2020.02.01
[백준]2164-카드2(설명X)  (0) 2020.02.01
[백준]1920-수 찾기(설명X)  (0) 2020.02.01
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함