Baekjoon/단계별로 풀어보기

[BOJ / 백준] 4153번 직각삼각형 C++ 문제 풀이

728x90

단계별로 풀어보기 - 수학 2단계 - [8단계] 4153번

문제

문제 링크 : www.acmicpc.net/problem/4153

 

4153번: 직각삼각형

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

www.acmicpc.net

입력 복사 : 

6 8 10 25 52 60 5 12 13 0 0 0

 

CODE

#include <iostream>
using namespace std;

int main() {
	while (1) {
		int x, y, z;
		int temp = 0;
		cin >> x >> y >> z;
		if (x == 0 && y == 0 && z == 0)
			return 0;

		if (x > y) {
			temp = y;
			y = x;
			x = temp;
		}
		if (y > z) {
			temp = z;
			z = y;
			y = temp;
		}

		if (z*z == x * x + y * y)
			cout << "right\n";
		else
			cout << "wrong\n";
	}
}

 

풀이

직각삼각형의 위와 같은 피타고라스의 정리가 성립한다.

가장 큰변이 구분되어야 하기 때문에,

코드에서는 x, y, z를 차례로 비교, swap하여 가장 큰 변의 길이가 z에 올 수 있도록 했다.

 

결과

728x90