[백준/BOJ] 백준 4153번 : 직각삼각형

2020. 9. 15. 04:03알고리즘 문제풀이

www.acmicpc.net/problem/4153

 

4153번: 직각삼각형

입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.

www.acmicpc.net

삼각형의 세 변의 길이를 입력받아 정렬을 하고, 가장 큰 수의 제곱 값이 다른 두 수를 각각 제곱하고 합한 값과 같은지 확인하여 직각삼각형인지 판단하였다.

 

코드

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main()
{
	cin.tie(NULL);
	ios_base::sync_with_stdio(false);

	vector<int> input;
	int a, b, c;

	while (1)
	{
		input.clear();

		//삼각형의 세변의 길이 입력
		cin >> a >> b >> c;
		input.push_back(a);
		input.push_back(b);
		input.push_back(c);

		//마지막줄일때
		if (a == 0 && b == 0 && c == 0)
			break;

		//오름차순으로 정렬
		sort(input.begin(), input.end());

		//직각 삼각형일때
		if (input[2] * input[2] == ((input[0] * input[0]) + (input[1] * input[1])))
			cout << "right" << "\n";
		
		//직각 삼각형이 아닐때
		else
			cout << "wrong" << "\n";

	}
	
	return 0;
}