[C++] 백준 10816 : 숫자 카드 2

#include <iostream>
#include <vector> // vector 사용
#include <algorithm>
using namespace std;
int main(int argc, char **argv){
    int N, M;
    int x;
    scanf("%d",&N);
    vector<int> v(N); // N 크기의 벡터 생성
    for(int i=0; i<N; i++){
        scanf("%d",&v[i]); // 상근이 값 입력받기
    }  
    sort(v.begin(), v.end()); // vector의 시작과 끝으로 정렬
    scanf("%d", &M);
    for(int i=0; i<M; i++){
        scanf("%d", &x);
        auto low = lower_bound(v.begin(), v.end(), x); // auto : 타입 추론, 매개변수에는 사용 불가
        auto up = upper_bound(v.begin(), v.end(), x);
        //upper_bound : binary search로 해당 숫자가 끝나는 위치 반환
        //lower_bound : binary search로 해당 숫자가 시작하는 위치 반환
        printf("%ld ", up - low);
    }
    
    return 0;
}오늘의 키포인트
- 
처음으로 lower_bound, upper_bound STL과 vector를 사용해보았다. 아직 미숙해서 인터넷을 열심히 찾아보았다. 다음에 보지 않고 풀어보기 필수. 
- 
vector를 sort 할 때는 시작과 끝을 v.begin(), v.end()를 사용한다. 
- 
upper_bound : binary search로 해당 숫자가 끝나는 위치 반환 (주어진 값보다 크거나 같으면서 제일 작은 값) 
 lower_bound : binary search로 해당 숫자가 시작하는 위치 반환 (주어진 값보다 크면서 제일 작은 값)
- 
C++에는 auto라고 타입 추론하는 변수형이있다. 매개변수에는 사용이 불가능하다. 하지만 주소를 저장할때는 참 좋은 것 같다. 
Author And Source
이 문제에 관하여([C++] 백준 10816 : 숫자 카드 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lamknh/C-백준저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)