문제
과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오.
입력
입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다.
각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.
출력
각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다.
예제 입력 1
6 8 10
25 52 60
5 12 13
0 0 0
예제 출력 1
right
wrong
right
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int arr[3];
string result;
while(true) {
cin >> arr[0] >> arr[1] >> arr[2];
sort(arr, arr+3);
int a = arr[0];
int b = arr[1];
int c = arr[2];
if(!a && !b && !c) break;
result = (a*a + b*b) == c*c ? "right" : "wrong";
cout << result << '\n';
}
return 0;
}
직각삼각형의 조건은 a^2 + b^2 = c^2이다.(단, c가 제일 큰 값이어야한다)
따라서 입력받은 값들을 오름차순으로 정렬해주고, 맨 마지막값을 c로잡아주면 된다.
그 이후는 조건에 맞게 출력해주면 된다
'PS > 백준' 카테고리의 다른 글
백준 / 브루트포스 / 2231번 / 분해합 / C++ (0) | 2021.09.11 |
---|---|
백준 / 수학 / 10250번 / ACM 호텔 / C++ (0) | 2021.09.11 |
백준 / 다이나믹 프로그래밍 / 11057번 / 오르막 수 / C++ (0) | 2021.09.07 |
백준 / 다이나믹 프로그래밍 / 1309번 / 동물원 / C++ (0) | 2021.09.06 |