본문 바로가기
BaekJoon/C++

20551 : Sort 마스터 배지훈의 후계자 (C++)

by GrayChoi 2021. 2. 18.
반응형

 

20551번: Sort 마스터 배지훈의 후계자

지훈이는 Sort 마스터다. 오랫동안 Sort 마스터 자리를 지켜온 지훈이는 이제 마스터 자리를 후계자에게 물려주려고 한다. 수많은 제자들 중에 후계자를 고르기 위해서 지훈이는 제자들에게 문제

www.acmicpc.net


lower_bound 함수를 참조해서 만든 함수로 푼 문제이다.

#include<iostream>
#include<algorithm>

using namespace std;

int grayLower_bound(int* arr, int N, int temp) {
    int left = 0;
    int right = N;
    int cnt = 0;
    // 탐색하려는 수가 없을 때 -1을 리턴하기 위해 카운트 변수 선언
    int mid;

    while(left < right) {
        mid = (left + right) / 2;

        if(arr[mid] < temp) {
            left = mid + 1;
        } else {
            right = mid;
        }

        if(arr[mid] == temp) {
            // 배열에 탐색하려는 수가 있을 때 카운트 증가
            cnt++;
        }
    }

    if(cnt != 0) {
        return right;
    } else {
        return -1;
    }
}

int main() {
    int N, M;
    scanf("%d %d", &N, &M);

    int arr[N];

    for(int i = 0; i < N; i++) {
        scanf("%d", &arr[i]);
    }

    sort(arr, arr + N);

    for(int i = 0; i < M; i++) {
        int temp;
        scanf("%d", &temp);

        printf("%d\n", grayLower_bound(arr, N, temp));
    }
    return 0;
}
반응형

'BaekJoon > C++' 카테고리의 다른 글

2573 : 빙산 (C++)  (0) 2021.02.18
2579 : 계단 오르기 (C++)  (0) 2021.02.18
7562 : 나이트의 이동 (C++)  (0) 2021.02.17
1966 : 프린터 큐 (C++)  (0) 2021.02.17
10815 : 숫자 카드 (C++)  (0) 2021.02.17

댓글