홍시홍 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;
}