지우너
[코드트리] 0에 가장 가까운 합 C++ 본문
문제
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석
국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.
www.codetree.ai
코드
#include <iostream>
#include <algorithm>
using namespace std;
const int MAX_N = 100001;
int n;
int num[MAX_N];
int main() {
cin >> n;
for(int i=0; i<n; ++i){
cin >> num[i];
}
sort(num, num+n);
// answer=min(answer, abs(a+b))
int r=n-1, answer=2e9;
for(int l=0; l<n; ++l){
if(l<r) answer = min(answer, abs(num[l]+num[r]));
// a[i]+a[j]>0은 a[j]가 엄청 크다는 의미 a[i]=-1인데 a[j]=1000000 같은 경우
while(r-1>l && num[l]+num[r]>0){
r--;
answer = min(answer, abs(num[l]+num[r]));
}
}
cout << answer << '\n';
return 0;
}
'Problem Solving' 카테고리의 다른 글
[코드트리] 서로 다른 k개의 문자 C++ (0) | 2024.08.25 |
---|---|
[코드트리] 중복되지 않는 가장 긴 문자열 C++ (0) | 2024.08.25 |
[코드트리] 바구니 안의 사탕 C++ (0) | 2024.08.23 |
[코드트리] 정수 두 개의 합2 C++ (0) | 2024.08.23 |
[코드트리] 겹치는 숫자가 없는 최대 구간 C++ (0) | 2024.08.22 |