-
[JS] 직각삼각형인지 판단하는 알고리즘Computer Science/알고리즘 2023. 4. 19. 05:47
문제
삼각형의 세 변을 입력받아 직각삼각형(pythagorean)인지 여부를 리턴해야 합니다.
주의사항
- 삼각형의 각 세 변은 무작위로 입력됩니다.
- 자바스크립트에서 x의 제곱(x squared)을 구하는 방법은 3가지 입니다. 세 가지 방법을 모두 사용해야 합니다.
- arr.sort 사용은 금지됩니다.
- 제곱을 구할 때는 입력으로 주어지는 변수를 그대로 사용해야 합니다.
풀이
피타고라스 정리에 의하면 직각삼각형은 제일 큰 변의 제곱은 나머지 두 변의 제곱의 합과 같다.
의사코드 (pseudocode)
1. 삼각형의 세 변의 값을 side1, side2, side3로 입력 받는다.
2. 각각의 변을 제곱한 값을 구한다.
3. side1이 큰 경우, side2가 큰 경우, side3가 가장 큰 경우를 나누어서 각각 피타고라스 정리를 이용해본다.
4. 세 가지 경우 중 하나라도 true면 true를 반환하고 해당 삼각형은 직각삼각형이다.
4-1. 세 가지 경우 모두 만족시키지 못하면 false이고 해당 삼각형은 직각삼각형이 아니다.
코드
function isPythagorean(side1, side2, side3) { const pow1 = side1 * side1; const pow2 = side2 ** 2; const pow3 = Math.pow(side3, 2); const case1 = pow1 === pow2+pow3; const case2 = pow2 === pow1+pow3; const case3 = pow3 === pow1+pow2; return case1 || case2 || case3; }
'Computer Science > 알고리즘' 카테고리의 다른 글
[JS] 알고리즘 문제 풀이 (0) 2023.04.27 [JS] 전화번호 형식의 문자열을 리턴하는 알고리즘 풀이 (0) 2023.04.25 [c] 에라토스테네스의 체로 소수 찾는 프로그램 (0) 2021.09.22 [기초] Map과 HashMap의 차이 (0) 2021.08.02 [c언어] N의 약수가 주어질 때 N 값 구하는 프로그램 (0) 2020.08.25