Doby's Lab

[알고리즘] 백준 5073번: 삼각형과 세 변 (C++), 조건의 위치 본문

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';
	}
}
728x90