반응형
● 문제 접근 과정
1. a, b, c가 주어졌을 때, 만들 수 있는 가장 큰 둘레를 구하는 프로그램을 작성하시오.
2. 삼각형의 조건 : 두 변의 길이의 합이 나머지 한 변의 길이보다 커야 한다.
3. 조건에 성립하면 그대로 출력하면 되지 만, 아니라면 가장 긴변의 길이를 a[0] + a[1] -1 만큼만 조정해 주면 된다.
4. 그러므로 a[0] + a[1] + a[0] + a[1] - 1이라는 식이 나오는데 정리하면 (a[0] + a[1]) * 2 - 1이 되는 것이다.
● 구현
#include <algorithm>
#include <iostream>
using namespace std;
int main() {
int a[3];
cin >> a[0] >> a[1] >> a[2];
sort(a, a + 3);
if (a[0] + a[1] > a[2])
cout << a[0] + a[1] + a[2];
else
cout << (a[0] + a[1]) * 2 - 1;
}
https://www.acmicpc.net/problem/14215
반응형