알고리즘/백준

[백준 2467] 용액 C++

겜도리도리 2023. 2. 19. 23:37
반응형

문제

백준 2467 용액 C++

 

2467번: 용액

첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 오름차순으로 입력되며, 이 수들은 모두 -

www.acmicpc.net

풀이

일반적인 두 포인터 문제이다.

앞 뒤에서 용액을 확인한 뒤, 주어진 조건에 따라 start와 end를 이동시켜주면 된다.

소스 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
 
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
 
    int N;
    cin >> N;
    vector<int> input;
    input.reserve(N);
 
    for (int i = 0; i < N; i++)
    {
        int num = 0;
        cin >> num;
        input.push_back(num);
    }
 
    int start = 0;
    int end = N - 1;
    int result1 = input[start];
    int result2 = input[end];
    int minAdd = abs(result1 + result2);
 
    while (start < end)
    {
        int add = input[start] + input[end];
        int absAdd = abs(add);
        if (absAdd < minAdd)
        {
            minAdd = absAdd;
            result1 = input[start];
            result2 = input[end];
        }
 
        if (add > 0)
        {
            end--;
        }
        else
        {
            start++;
        }
    }
 
    cout << result1 << ' ' << result2;
 
    return 0;
}
cs
반응형

'알고리즘 > 백준' 카테고리의 다른 글

[백준 10025] 게으른 백곰 C++  (0) 2023.02.23
[백준 2473] 세 용액 C++  (10) 2023.02.20
[백준 1937] 욕심쟁이 판다 C++  (1) 2023.02.11
[백준 17299] 오등큰수 C++  (0) 2023.01.12
[백준 4883] 삼각 그래프 C++  (1) 2022.12.22