문제 : https://www.acmicpc.net/problem/1059
[ 알고리즘풀이 ]
Lucky Set을 정렬한 후, N의 상대적인 위치를 파악해 Lucky Set에서 left, right 를 설정합니다.
left 와 N이 같다면 0을 출력하고 아니라면 경우의 수를 모두 출력해주면 됩니다.
#include<iostream>
#include<algorithm>
using namespace std;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int N, list[1002] = {}, L, left, right;
cin >> N;
for (int i = 1; i <= N; i++)
cin >> list[i];
sort(list, list + N + 1);
cin >> L;
for (int i = 0; i <= N; i++)
if (list[i] <= L && L < list[i + 1]) {
left = list[i];
right = list[i + 1];
break;
}
if (L == left)
cout << 0;
else
cout << (L - left) * (right - L) - 1;
return 0;
}
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ] 17471 : 게리맨더링 - travelbeeee (0) | 2020.02.17 |
---|---|
[BOJ] 2565 : 전깃줄 - travelbeeee (0) | 2020.02.16 |
[BOJ] 17281 : 야구 - travelbeeee (0) | 2020.02.14 |
[BOJ] 1049 : 기타줄 - travelbeeee (0) | 2020.02.13 |
[BOJ] 17218 : 비밀번호 만들기 - travelbeeee (0) | 2020.02.13 |