Algorithm/구현, 시뮬레이션

[BAEKJOON] 5073번 삼각형과 세 변

Ls._.Rain 2024. 3. 18. 16:14

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

 

5073번: 삼각형과 세 변

각 입력에 맞는 결과 (Equilateral, Isosceles, Scalene, Invalid) 를 출력하시오.

www.acmicpc.net

 

수학을 한지 꽤 오래되어서 삼각형의 조건을 만족하지 못하는 경우,,,? 를 몰라서 엄청 당황했다.

두변의 길이의 합이 나머지 한변의 길이보다 커야 삼각형이 된다.

나 중학교 나왔는데,,,

조건이 너무 많아서 구현하는데 헷갈렸다. 그리고 이 문제는 if문과 else-if문이 어디서 걸리는지 잘 판단 해야 한다.

아니면 while문 안에서 무한루프등에 빠질 수 있으니,, 특히 종료조건으로 if문은 따로! 빼줘야한다

 

#include <iostream>

using namespace std;
int main(){
	while (1) {
		int n1, n2, n3;
		cin >> n1 >> n2 >> n3;
		if (n1 == 0 && n2 == 0 && n3 == 0) return 0;
		if (n1 + n2 <= n3 || n2 + n3 <= n1 || n1 + n3 <= n2) cout << "Invalid" << '\n';
		else if (n1 == n2 && n2 == n3) cout << "Equilateral" << '\n';
		else if (n1 == n2 || n2 == n3 || n1 == n3) cout << "Isosceles" << '\n';
		else if (n1 != n2 && n2 != n3 && n1 != n3) cout << "Scalene" << '\n';

	}
}

언제나 기분좋은 초록색