최대 1 분 소요

문제

과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오.

입력

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

출력

각 입력에 대해 직각 삼각형이 맞다면 “right”, 아니라면 “wrong”을 출력한다.

1427

해결과정

  1. 세자리 숫자 입력
  2. 숫자를 정렬해서 변수에 하나씩 할당
  3. 세 수가 모두 0일때 break
  4. 모두 0이 아니면 피타고라스 정의를 이용해 직각삼각형인지 판별

처음에 변수에 할당하지 않고 바로 했더니 제대로 작동이 안되서 한참 헤맨 문제 숫자를 입력해서 split 하면 배열로 되기 때문에 다시 숫자로 다 나눠줘야 되는 것 같다.

let input = require('fs').readFileSync('/dev/stdin', 'utf8').toString().trim().split('\n');

for (let N of input){
    let nums = N.split(' ').sort((a, b) => a-b)
    let num1 = nums.shift()
    let num2 = nums.shift()
    let num3 = nums.shift()
    if (parseInt(num1) === 0 && parseInt(num2) === 0 && parseInt(num3) === 0){
        break;
    }
    if (parseInt(num3)*parseInt(num3) === parseInt(num1)*parseInt(num1) + parseInt(num2)*parseInt(num2)){
        console.log('right')
    } else {
        console.log('wrong')
    }
}