2017년 2월 26일 일요일
1337 올바른 배열
배열 사이에서 연속적인(차이가 1) 원소가 5개가 되기 위해서 몇개의 숫자가 필요한가? 를 묻는 문제였다
슬라이딩윈도우? 처럼 풀었더니 쉽게 풀리는 문제!
슬라이딩윈도우? 처럼 풀었더니 쉽게 풀리는 문제!
#include <bits/stdc++.h>
using namespace std;
#define INF 987654321
#define P make_pair
typedef long long LL;
int arr[10001];
int main(){
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",&arr[i]);
sort(arr,arr+n);
int s=arr[0],e=arr[0],idx_s=0;
int cnt=1,Max=1;
for(int i=1;i<n;i++){
cnt++;
while(arr[i]-arr[idx_s]>4){
idx_s++;
cnt--;
}
Max=max(Max,cnt);
}
if(Max>5) Max=5;
printf("%d",5-Max);
return 0;
}
| cs |
2017년 2월 24일 금요일
피드 구독하기:
글 (Atom)