
문제출처 : https://www.acmicpc.net/problem/19950
code
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
int main()
{
    ios::sync_with_stdio(false);
    int X1, Y1, Z1, X2, Y2, Z2, N, stick;
    double end = 0, stick_len = 0;
    vector<int> arr;
    cin >> X1 >> Y1 >> Z1 >> X2 >> Y2 >> Z2;
    cin >> N;
    end = sqrt(pow(X2 - X1, 2) + pow(Y2 - Y1, 2) + pow(Z2 - Z1, 2));
    for (int i = 0; i < N; i++)
    {
        cin >> stick;
        arr.push_back(stick);
        stick_len += stick;
    }
    sort(arr.begin(), arr.end(), greater<>());
    if (stick_len < end)
        cout << "NO";
    else if (stick_len == end)
        cout << "YES";
    else
    {
        int temp=0;
        for (int i = 1; i < N; i++)
            temp += arr[i];
        if (end>=arr[0]-temp)
            cout << "YES";
        else
            cout << "NO";
    }
    return 0;
}참고 블로그 : https://kim-yejin.tistory.com/41
문제도 이해했고, 어떻게 푸는지도 이해했는데, 구현을 어떻게 해야하나 고민하던 찰나 참고블로그에서 접근방식을 너무 잘 설명해주셔서 풀 수 있었다.
차근차근 노트에 접근방식을 곰곰히 생각해보면서 적어보니 좀더 쉽게느껴졌다.
요새 블로그 포스팅이 좀 느린데, 개학전에 부지런히 해야겠다 ㅠㅠ