[백준/BOJ] 19950. 3차원 막대기 연결하기 [Gold 5]

jychan99·2022년 2월 22일
0
post-thumbnail
  1. 3차원 막대기 연결하기

문제출처 : 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
문제도 이해했고, 어떻게 푸는지도 이해했는데, 구현을 어떻게 해야하나 고민하던 찰나 참고블로그에서 접근방식을 너무 잘 설명해주셔서 풀 수 있었다.
차근차근 노트에 접근방식을 곰곰히 생각해보면서 적어보니 좀더 쉽게느껴졌다.
요새 블로그 포스팅이 좀 느린데, 개학전에 부지런히 해야겠다 ㅠㅠ

profile
내가 지금 두려워 하고 있는 일이 바로 내가 지금 해야 할 일이다. 🐥

0개의 댓글