Baekjoon/단계별로 풀어보기
[BOJ / 백준] 4153번 직각삼각형 C++ 문제 풀이
s_ih_yun
2020. 11. 15. 03:37
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