코딩 테스트/백준

백준 - [단계별로 풀어보기 기하 1: 직사각형과 삼각형] 14215 세 막대

devrabbit22 2026. 4. 1. 01:51

이번 문제는 세 막대의 길이가 주어졌을 때 삼각형이 성립하는지 확인하고,
성립하지 않는 경우에는 변의 길이를 조정하여 만들 수 있는 삼각형 중 최대 둘레를 구하는 문제이다.

삼각형은 가장 긴 변의 길이가 나머지 두 변의 길이의 합보다 작아야 성립하기 때문에, 이 조건을 만족하도록 가장 긴 변의 길이를 조정해 문제를 해결할 수 있다.

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp3
{
    internal class geometry1
    {
        static void Main(string[] args)
        {
            //백준 14215 세 막대
            string[] input = Console.ReadLine().Split();
            int lengthA = int.Parse(input[0]);
            int lengthB = int.Parse(input[1]);
            int lengthC = int.Parse(input[2]);

            // 정렬
            int[] arr = { lengthA, lengthB, lengthC };
            Array.Sort(arr);
            // 삼각형 조건 확인 (긴 변 < 나머지 합)
            if (arr[2] >= arr[0] + arr[1])
            {
                arr[2] = arr[0] + arr[1] - 1;
            }
            // 둘레 출력
            Console.WriteLine(arr[0] + arr[1] + arr[2]);
        }
    }
}

출력 결과1
출력 결과2