백준 18870 c++

magicdrill·2024년 4월 13일
0

백준 문제풀이

목록 보기
299/655

백준 18870 c++

//벡터 첫 사용

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int input(int lower, int upper);

int main(void) 
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int N, X;
    int i;
    vector<int> vi;
    vector<int> copied_vi;

    N = input(1, 1000000);

    for (i = 0; i < N; i++) 
    {
        X = input(-1000000000, 1000000000);
        vi.push_back(X);//뒤에 삽입 + 메모리크기 추가...
        copied_vi.push_back(X);//vi 복사
    }
    sort(vi.begin(), vi.end());//vi를 정렬
    vi.erase(unique(vi.begin(), vi.end()), vi.end());
    //vi를 중복이 없는 벡터로 만들고, 중복원소 제거
    for (int i = 0; i < N; i++) 
    {
        cout << lower_bound(vi.begin(), vi.end(), copied_vi[i]) - vi.begin() << " ";
    }

    return 0;
}

int input(int lower, int upper)
{
    int A;

    while (1)
    {
        cin >> A;
        if (A >= lower && A <= upper)
        {
            break;
        }
        else
        {
            ;
        }
    }

    return A;
}

0개의 댓글