c# 백준 14215 세 막대.
풀이 과정
가장 긴 변의 길이와 나머지 두 변의 길이를 비교하여 삼격형을 판단함.
삼각형일 경우 그대로 모든 변의 길이를 더해서 출력.
삼격형이 아닐 경우 나머지 두 변의 합보다 작은 양의 정수여야 하므로
가장 긴 변의 값을 나머지 두변의 합 - 1로 바꾸고 모든 값을 더함.
즉, 나머지 두 변의 합 - 1 + 나머지 두 변의 합 -> 나머지 두 변의 합*2 - 1
전체 코드
class Program
{
    static void Main(string[] args)
    {
        string s = Console.ReadLine();
        string[] sArr = s.Split(' ');
        int[] length = new int[3];
        for (int i = 0; i < 3; i++)
        {
            length[i] = int.Parse(sArr[i]);
        }
        int max = length.Max(); // 가장 긴 변의 길이
        int legSum = length[0] + length[1] + length[2] - max; // 가장 긴 변을 제외한 나머지 두변의 길이의 합
        // 삼각형이 아닐 경우 (가장 큰 한 변이 나머지 두 변보다 길 때)
        if (max >= legSum)
        {
            Console.WriteLine(legSum * 2 - 1);
        }
        else // 삼각형일 경우
        {
            Console.WriteLine(length[0] + length[1] + length[2]);
        }
    }
}
 
      
댓글남기기