PS
BOJ 1059 : 좋은 구간
lickelon
2025. 1. 17. 17:01
- 문제 링크 : boj.kr/1059
- 난이도 : S4
- 태그 : 정렬, 브루트포스
코드
#include <bits/stdc++.h>
#define all(x) (x).begin(), (x).end()
#define INF 0x7FFFFFFF
using namespace std;
using ll = long long;
using ld = long double;
using pii = pair<int,int>;
using pll = pair<ll, ll>;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int l;
cin >> l;
vector<int> arr(l);
for(auto &e : arr) cin >> e;
arr.push_back(0);
arr.push_back(1001);
sort(all(arr));
int n;
cin >> n;
for(int i = 1; i < l+2; i++) {
if(arr[i-1] < n && n < arr[i]) {
int ans = 0;
for(int s = arr[i-1] + 1; s < arr[i]-1; s++) {
for(int e = s + 1; e < arr[i]; e++) {
if(s <= n && n <= e) ans++;
}
}
cout << ans;
return 0;
}
}
cout << 0;
return 0;
}
풀이
집합 S를 정렬하여 원소를 늘어놓으면 원소들로 구간이 여러 개로 나눠지게 된다.
좋은 구간은 이 구간 중 n이 포함된 한 구간 안에만 존재하게 된다.
좋은 구간이 존재할 구간을 찾았으면 브루트포스를 통해 n이 존재할 수 있는 구간을 세면 된다.
728x90