PS/BOJ
[알고리즘] 백준 5073번: 삼각형과 세 변 (C++), 조건의 위치
도비(Doby)
2021. 11. 12. 23:14
https://www.acmicpc.net/problem/5073
5073번: 삼각형과 세 변
각 입력에 맞는 결과 (Equilateral, Isosceles, Scalene, Invalid) 를 출력하시오.
www.acmicpc.net
평소에 많이 보던 문제인데 나중에 한 번 어려운 응용문제에서 나올 거 같은 느낌이 들어서 간단하게 정리해두려 한다.
이 문제의 포인트는 조건의 위치다. 한 번 if 필터링 거치고 나서 이번엔 무엇을 우선순위 조건으로 두고 조건식을 달아두어야 하는지 파악해야 하는 게 포인트다.
#include <iostream>
using namespace std;
int main() {
int a, b, c;
while (1) {
cin >> a >> b >> c;
if (!a && !b && !c) break;
if (a == b && b == c && a == c) cout << "Equilateral" << '\n';
else if (a >= b + c || b >= a + c || c >= a + b) cout << "Invalid" << '\n'; // 이 조건 위치가 사람들 많이 헷갈리는 거 같다.
else if (a == b || b == c || a == c) cout << "Isosceles" << '\n';
else cout << "Scalene" << '\n';
}
}