백준 1059번 : 좋은구간

Se0ng_1l·2022년 6월 21일
0

백준

목록 보기
3/40

정수 집합 S가 주어졌을때, 다음 조건을 만족하는 구간 [A, B]를 좋은 구간이라고 한다.

A와 B는 양의 정수이고, A < B를 만족한다.

A ≤ x ≤ B를 만족하는 모든 정수 x가 집합 S에 속하지 않는다.

집합 S와 n이 주어졌을 때, n을 포함하는 좋은 구간의 개수를 구해보자.

https://www.acmicpc.net/problem/1059

#include
#include
#include
using namespace std;

int FindIdx(vector v, int a)
{
for(int i = 0; i < (int)v.size(); i++)
{
if(v[i] == a)
{
return i;
}
}
return 0;
}

int main()
{
int cnt;
cin >> cnt;

vector<int> v(cnt);
for(int i =0; i < cnt; i++)
{
    cin >> v[i];
}

int n;
cin >> n;
for(int i = 0; i < cnt; i++)
{
    if(v[i] == n)
    {
        cout << 0 << endl;
        return 0;
    }
}

v.push_back(n);
std::sort(v.begin(), v.end());
int place = FindIdx(v, n);
int result = 0;

result += v[place + 1] - v[place] - 1;

for(int i = v[place - 1] + 1; i < v[place]; i++)
{
    for(int j = v[place]; j < v[place + 1]; j++)
    {
        result++;
    }
}
cout << result;

}

profile
치타가 되고 싶은 취준생

0개의 댓글