5073번
1.가장 긴변에서 나머지 두변을 뺌
a + b + c - max_side <= max_side
어떤게 max_side 가 될지 모르니 ( max_side - a? b? c?)
> 전체 더한것에서 max_side 를뻄
1-1 ) 가장 긴 변의 길이보다 나머지 두 변의 길이의 합이 길지 않으면 삼각형의 조건을 만족하지 못한다.
== 두변의 합은 나머지 한변보다는 무조건 길다
if (a + b <= c || a + c <= b || b + c <= a)
작은 경우 > printf("Invalid\n");
14215번
1, 오름차순 정리 // 작은것부터 크도록
if (a > b) { int temp = a; a = b; b = temp; }
if (b > c) { int temp = b; b = c; c = temp; }
if (a > b) { int temp = a; a = b; b = temp; }
1-1 ) a 가 크면 a -> b , b -> a
"
1-3) 마지막에 a>b 를 한번 더 검사 > ( 위의 두 단계를 거치며 값 바뀐 것을 한번더 확인)
if (a + b > c) {
printf("%d\n", a + b + c);
} else {
// 삼각형 조건이 만족되지 않으면 둘레 출력
printf("%d\n", 2 * (a + b) - 1);
}
작은 두변이 나머지 한변보다 크면 삼각형 -> a + b + c
else) a+b <= c 인경우 : c 를 (a+b) -1 만큼으로 줄여야 최대 삼각형 길이가됨
>> a + b + a + b - 1 = 2* (a+b) -1
'C언어 > 백준' 카테고리의 다른 글
FIFO 메모리관리 (0) | 2024.11.24 |
---|---|
2789번, 2231번 (0) | 2024.11.23 |
2581번, 11653번, 1085번, 3009번 (0) | 2024.11.20 |
2869번, 5086번, 2501번, 9506번, 1978번 (0) | 2024.11.19 |
1193번 (0) | 2024.11.16 |