코딩/백준 문제 (브론즈)

[백준/14215/C언어] 세 막대 _ 풀이

룻밤 2023. 9. 1. 20:32

https://www.acmicpc.net/problem/14215

 

14215번: 세 막대

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

www.acmicpc.net


풀이

#include <stdio.h>
int main() {
	int a[3], temp;

	scanf("%d %d %d", &a[0], &a[1], &a[2]);
	// 길이가 모두 같을때
	if (a[0] == a[1] && a[1] == a[2]) printf("%d\n", a[0] * 3);
	// 다를때는 내림차순 정렬
	else {
		for (int i = 0; i < 3; i++) {
			for (int j = i; j < 3; j++) {
				if (a[i] < a[j]) {
					temp = a[i];
					a[i] = a[j];
					a[j] = temp;
				}
			}
		}
		// 삼각형의 조건에 부합하지 않을때 
		if (a[0] >= a[1] + a[2]) printf("%d\n", (a[1] + a[2]) * 2 - 1);
		// 삼각형의 조건에 부합할때
		else printf("%d\n", a[0] + a[1] + a[2]);
	}
	return 0;
}

삼각형의 조건이란?

= 가장 큰 변의 길이가 나머지 두변의 길이보다 클때 삼각형의 조건에 성립한다.

EX) a[0] < a[1]+a[2]