반응형
● 문제 접근 과정
1.Equilateral : 세 변의 길이가 모두 같은 경우
Isosceles : 두 변의 길이만 같은 경우
Scalene : 세 변의 길이가 모두 다른 경우
단 주어진 세 변의 길이가 삼각형의 조건을 만족하지 못하는 경우에는 "Invalid" 를 출력한다. 예를 들어 6, 3, 2가 이 경우에 해당한다. 가장 긴 변의 길이보다 나머지 두 변의 길이의 합이 길지 않으면 삼각형의 조건을 만족하지 못한다.
2. 해당 조건에 맞게 if문을 사용하여 구현.
● 구현
#include <algorithm>
#include <iostream>
using namespace std;
int main() {
int s1, s2, s3, max_side;
while (1) {
cin >> s1 >> s2 >> s3;
if (s1 == 0 && s2 == 0 && s3 == 0)
break;
max_side = max(s1, max(s2, s3));
if (max_side >= s1 + s2 + s3 - max_side)
cout << "Invalid" << endl;
else if (s1 == s2 && s2 == s3)
cout << "Equilateral" << endl;
else if (s1 == s2 || s2 == s3 || s1 == s3)
cout << "Isosceles" << endl;
else
cout << "Scalene" << endl;
}
return 0;
}
https://www.acmicpc.net/problem/5073
반응형