[백준 2467번 C/C++] 용액
[백준 2467번 C/C++] 용액
https://www.acmicpc.net/problem/2467
2467번: 용액
첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 오름차순으로 입력되며, 이 수들은 모두 -
www.acmicpc.net
해결전략
투포인터 알고리즘 two pointer algorithm
정답코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int n;
vector<int> v;
int main() {
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cin >> n;
int input;
for (int i = 0; i < n; i++) {
cin >> input;
v.push_back(input);
}
int neutral = 2147000000;
vector<pair<int, int>> loc;
int p1 = 0, pp1 = 0;
int p2 = n - 1, pp2 = n - 1;
while (p1 < p2)
{
int sum = v[p1] + v[p2];
if (abs(sum) <= abs(neutral)) { // 현재 합이 이전 합보다 0에 더 가까운 경우
neutral = sum;
pp1 = p1;
pp2 = p2;
}
if (abs(v[p1]) < abs(v[p2])) p2--;
else p1++;
}
cout << v[pp1] << " " << v[pp2];
return 0;
}
'⭐ 코딩테스트 > 백준' 카테고리의 다른 글
[백준 2473번 C/C++] 세 용액 (1) | 2024.01.14 |
---|---|
[백준 11049번 C/C++] 행렬 곱셈 순서 (1) | 2024.01.13 |
[백준 1987번 C/C++] 알파벳 (0) | 2024.01.10 |
[백준 2448번 C/C++] 별 찍기 - 11 (1) | 2024.01.09 |
[백준 12851번 C/C++] 숨바꼭질2 (0) | 2024.01.08 |
댓글
이 글 공유하기
다른 글
-
[백준 2473번 C/C++] 세 용액
[백준 2473번 C/C++] 세 용액
2024.01.14 -
[백준 11049번 C/C++] 행렬 곱셈 순서
[백준 11049번 C/C++] 행렬 곱셈 순서
2024.01.13 -
[백준 1987번 C/C++] 알파벳
[백준 1987번 C/C++] 알파벳
2024.01.10 -
[백준 2448번 C/C++] 별 찍기 - 11
[백준 2448번 C/C++] 별 찍기 - 11
2024.01.09