-
https://www.acmicpc.net/problem/2470
백준 온라인저지 2470번 두 용액문제입니다.
아이디어
입력받은 용액 들을 정렬한 후 투포인터 알고리즘을 사용하여 0에 가장 가까운 알칼리성 용액과 산성 용액을 구했습니다.
#include<iostream> #include<vector> #include<algorithm> using namespace std; vector<int> arr; int n; int abs(int a) { return a >= 0 ? a : a * (-1); } void input() { cin >> n; while (n--) { int num; cin >> num; arr.push_back(num); } } void solution() { //오름차순으로 정렬하여 sort(arr.begin(), arr.end()); int sum = 0; int minIdx = 2000000001; int sp=0, ep = arr.size()-1; int p1, p2; //투포인터 알고리즘 사용 while (sp < ep) { if (abs(arr[sp] + arr[ep]) <= minIdx) { p1 = arr[sp]; p2 = arr[ep]; minIdx = abs(arr[sp] + arr[ep]); } if (arr[sp] + arr[ep] < 0) { sp++; continue; } ep--; } cout << p1 << " "<< p2; } int main(void) { input(); solution(); }
'알고리즘 > 백준' 카테고리의 다른 글
BOJ 1436 영화감독 숌 / C++ (0) 2022.05.24 BOJ 14500 테트로미노 / C++ (0) 2022.05.23 BOJ 1644 소수의 연속합/ C++ (0) 2022.05.23 BOJ 1311 할 일 정하기1 / C++ (0) 2022.05.23 BOJ 17244 아맞다우산 / C++ (0) 2022.05.23 댓글