쾌락없는 책임 (공부)/알고리즘 문제풀이

백준 14921 - 용액 합성하기 ,C++

허스크 2021. 9. 19. 12:03
반응형

 

14921번: 용액 합성하기

홍익대 화학연구소는 다양한 용액을 보유하고 있다.  각 용액은 -100,000,000부터 100,000,000사이의 특성 값을 갖는데, 같은 양의 두 용액을 혼합하면, 그 특성값은 두 용액의 특성값의 합이 된다. 당

www.acmicpc.net

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int n;

int main(){
    scanf("%d", &n);
    vector<int> liquid(n);

    for(int i = 0; i < n; i++)
        scanf("%d", &liquid[i]);

    // pointer
    int left  = 0;
    int right = n - 1;
    int result = 2100000000;

    // solution
    while(left < right){
        int liq1 = liquid[left];
        int liq2 = liquid[right];

        if(abs(liq1 + liq2) < abs(result))
            result = liq1 + liq2;
        
        if(liq1 + liq2 < 0)
            left++;
        else 
            right--;
    }

    printf("%d\n", result);
    
}

 쉬운 두 포인터 알고리즘이었습니다.

반응형