알고리즘 문제풀이/백준
[백준 1059] 수2
홍시홍
2020. 3. 20. 22:12
요구사항
구간 중 주어진 배열은 포함되지 않고 k는 포함된 구간은 몇개인지 출력
풀이
문제 예시가 빈약한 듯 하다
[a, b] 구간 중 k가 포함 되기 위해서는
a <= k && b>=k를 만족하여야 한다.
#include <iostream>
#include <algorithm>
using namespace std;
int n;
int map[51];
int target;
int main() {
int minv = 0;
int maxv = 0;
int flag = 0;
int flagget = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &map[i]);
}
scanf("%d", &target);
sort(map, map + n);
minv = 1;
maxv = map[0];
for (int i = 0; i < n-1; i++) {
if (map[i] < target && map[i + 1] >target) {
minv = map[i];
maxv = map[i + 1];
flag = 1;
break;
}
if (flag == 1) break;
}
int ans = 0;
if (flag == 1) {
for (int i = minv + 1; i < maxv; i++) {
for (int j = i + 1; j < maxv; j++) {
if (i <= target) {
if (j >= target) {
ans++;
}
}
}
}
}
else {
for (int i = 1; i < maxv; i++) {
for (int j = i + 1; j < maxv; j++) {
if (i <= target) {
if (j >= target) {
ans++;
}
}
}
}
}
cout << ans << endl;
}