728x90
반응형
https://www.acmicpc.net/problem/14921
1. Logic
기본적인 이분탐색 문제이다.
0에 가깝다는 것을 판단하는 것은 절댓값을 통해 가장 작은 값을 찾으면 된다.
2. Code
#include<bits/stdc++.h>
using namespace std;
int n;
vector<int> input;
int ans = 0x3f3f3f3f;
void solve() {
int start = 0;
int end = n - 1;
while(start < end) {
if(start + end == 0) {
ans = 0;
return;
}
if(abs(input[start] + input[end]) < abs(ans)) {
ans = input[start] + input[end];
}
if(input[start] + input[end] < 0) start++;
else end--;
}
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
cin >> n;
for(int i = 0; i < n; i++) {
int a;
cin >> a;
input.push_back(a);
}
sort(input.begin(), input.end());
solve();
cout << ans;
}
알고리즘 Solve 후 제가 생각한 Logic을 기록하는 개인 공부 블로그입니다.
내용 중 최적화가 가능한 부분등은 언제든지 댓글로 틀린 부분 및 피드백 주시면 공부 및 반영하겠습니다🧐
728x90
반응형
'Algorithm > Beakjoon' 카테고리의 다른 글
[백준/Baekjoon] 2146 다리 만들기 C++ :: BFS (2) | 2023.10.11 |
---|---|
[백준/Baekjoon] 1406 에디터 C++ :: Data structure & deque (1) | 2023.10.10 |
[백준/Baekjoon] 1477 휴게소 세우기 C++ :: Binary Search (1) | 2023.10.08 |
[백준/Baekjoon] 2295 세 수의 합 C++ :: Binary Search (1) | 2023.10.08 |
[백준/Baekjoon] 16401 과자 나눠주기 C++ :: Binary Search (0) | 2023.10.06 |