또다시 한문제에 오래 동안 붙잡힌 불상사가 발생하였다. 주 원인은 long long의 최대값를 고려하지 않은 것(10e18). 채점중 틀리는 지점(%)을 신경 쓰지 않고 오직 코드의 정확성 만을 확인한 후에 제출해야 한다는 것을 깨달았다.
제출은 신중히, 자료형은 정확하게.
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
ios_base :: sync_with_stdio(false);
cin.tie(NULL);
long long N;
vector<int> ans_point;
long long ans=0, Min=100000000000000001;
cin>>N;
vector<int> v(N);
vector<long long> awk(N, 0);
for(int i=0; i<N; i++){
cin>>v[i];
}
sort(v.begin(), v.end());
for(int i=1; i<N; i++){
awk[i]=v[i]-v[i-1];
}
if(N>3){
long long start=awk[1]+awk[2];
for(int i=4; i<N; i+=2){
start+=awk[i];
}
Min=min(start, Min);
for(int i=2; i<N-1; i+=2){
start+=(awk[i+1]-awk[i]);
Min=min(start, Min);
} cout<<Min;
return 0;
}
cout<<v[2]-v[0];
}
누적합+그리디
'알고리즘' 카테고리의 다른 글
| Boj 1620 c++ 나는야 포켓몬 마스터 이다솜 (0) | 2025.06.03 |
|---|---|
| Boj 2036 c++ 수열의 점수 (0) | 2025.06.03 |
| Boj 21758 c++ 꿀따기 (0) | 2025.06.03 |
| Boj 31964 c++ 반품회수 (0) | 2025.06.02 |
| Boj 25379 c++ 피하자 (0) | 2025.06.02 |