콘솔창 & 윈도우창/코딩 테스트

1253 골드4 좋다

뽀또치즈맛 2024. 11. 8. 22:59

https://www.acmicpc.net/problem/1253

 

 

 

투 포인터 문제이다.

 

#include <string>
#include <vector>
#include <iostream>
#include <map>
#include <algorithm>

using namespace std;


int main(void)
{

    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int n;
    cin >> n;
    vector<int> a(n, 0);

    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    sort(a.begin(), a.end());
    int result = 0;

    for (int k = 0; k < n; k++) {
        long find = a[k];
        int i = 0; 
        int j = n - 1;

        while (i < j)
        {
            if (a[i] + a[j] == find) {
                if (i != k && k != j) {
                    result++;
                    break;
                }
                else if (i == k) i++;
                else if (j == k) j--;
            }
            else if (a[i] + a[j] < find) i++;
            else j--;
        }
    }

    cout << result << "\n";

    return 0;
}