c# 백준 14215 세 막대.
풀이 과정Permalink
가장 긴 변의 길이와 나머지 두 변의 길이를 비교하여 삼격형을 판단함.
삼각형일 경우 그대로 모든 변의 길이를 더해서 출력.
삼격형이 아닐 경우 나머지 두 변의 합보다 작은 양의 정수여야 하므로
가장 긴 변의 값을 나머지 두변의 합 - 1
로 바꾸고 모든 값을 더함.
즉, 나머지 두 변의 합 - 1 + 나머지 두 변의 합
-> 나머지 두 변의 합*2 - 1
전체 코드Permalink
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]);
}
}
}
댓글남기기