본문 바로가기

백준/C++

[Baekjoon/C++] 14215번 - 세 막대

[백준] Baekjoon Online Judge

문제로 이동

 

문제

영선이는 길이가 a, b, c인 세 막대를 가지고 있고, 각 막대의 길이를 마음대로 줄일 수 있다.

영선이는 세 막대를 이용해서 아래 조건을 만족하는 삼각형을 만들려고 한다.

  • 각 막대의 길이는 양의 정수이다
  • 세 막대를 이용해서 넓이가 양수인 삼각형을 만들 수 있어야 한다.
  • 삼각형의 둘레를 최대로 해야 한다.

a, b, c가 주어졌을 때, 만들 수 있는 가장 큰 둘레를 구하는 프로그램을 작성하시오. 

 

입력

첫째 줄에 a, b, c (1 ≤ a, b, c ≤ 100)가 주어진다.

 

출력

첫째 줄에 만들 수 있는 가장 큰 삼각형의 둘레를 출력한다.

 


풀이

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

int main() {
    int n[3];
    cin >> n[0] >> n[1] >> n[2];

    sort(n, n + 3);

    int sum = n[0] + n[1];

    if (sum <= n[2]) 
        cout << sum * 2 - 1 << '\n';
    else 
        cout << sum + n[2] << '\n';

    return 0;
}

삼각형을 만들기 위해서는 가장 긴 변의 길이가 나머지 2개 변의 합보다 작아야 한다.

'백준 > C++' 카테고리의 다른 글

[Baekjoon/C++] 1238번 - 파티  (0) 2024.05.05
[Baekjoon/C++] 1753번 - 최단경로  (0) 2024.05.04
[Baekjoon/C++] 3067번 - Coins  (0) 2024.04.17
[Baekjoon/C++] 1890번 - 점프  (0) 2024.04.15
[Baekjoon/C++] 2493번 - 탑  (0) 2024.04.14