문제
과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오.
입력
입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.
출력
각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다.
해설
먼저 피타고라스의 정리를 한번 보고 오실까요?
https://ko.wikipedia.org/wiki/%ED%94%BC%ED%83%80%EA%B3%A0%EB%9D%BC%EC%8A%A4_%EC%A0%95%EB%A6%AC
피타고라스 정리는 간단하게 정리하면
a^2+b^2 = c^2
입니다!
따라서 주어신 3개의 변중에 빗변(c)을 찾고,
나머지 두 변의 제곱 값을 더한 값이 빗변의 제곱과 같은지만 확인 하면 되는 간단한 문제입니다!
바로 코드로 넘어갈게요.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
var fs = require('fs');
var inputs = fs.readFileSync('/dev/stdin').toString().split('\n');
for(let line of inputs) {
let values = line.split(' ').map(el => parseInt(el));
if(values[0] === 0) break;
// 정렬을 하는 이유는 제일 큰 숫자가 빗변이기 때문에.
values.sort((a, b) => {
return a - b;
});
// a^2+b^2=c^2이 성립하여야 직각이다.
if((values[0] * values[0]) + (values[1] * values[1]) === (values[2] * values[2])) {
console.log("right")
} else {
console.log("wrong")
}
}
|
cs |
'끄적 > Algorithm' 카테고리의 다른 글
[알고리즘] 백준 - 1002 터렛 해설, node js 구현 (0) | 2021.08.28 |
---|---|
[알고리즘] 백준 - 3053 택시 기하학 해설, node js 구현 (0) | 2021.08.28 |
[알고리즘] 백준 - 1149 RGB 거리 node js 구현 (0) | 2021.08.22 |
[알고리즘] 백준 - 3009 네 번째 점 node js 구현 (0) | 2021.08.22 |
[알고리즘] 백준 - 1003 피보나치 함수 node js 구현 (0) | 2021.08.20 |