코딩 테스트
[프로그래머스 Level 1] 정수 제곱근 판별
y_flm
2025. 3. 11. 12:16
반응형
문제:
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
제한 사항
- n은 1이상, 50000000000000 이하인 양의 정수입니다.
문제 풀어보기: https://school.programmers.co.kr/learn/courses/30/lessons/12934?language=javascript
풀이보기
더보기
function solution(n) {
return Number.isInteger(Math.sqrt(n)) ? Math.pow(Math.sqrt(n) + 1, 2) : -1;
}
메서드를 이용하면 간단한 문제이다.
처음에는 소수점을 어떻게 구별해야하나 생각했는데, 마침 Number.isInteger() 메서드를 발견하게 되었다.
값이 정수라면 true를 반환하고, 실수라면 false를 반환하는 메서드이다.
제곱근을 구하는 Math.sqrt(n)를 이용해서 제곱근이 정수인지 실수인지 확인하고,
true라면 제곱값을 구하는 Math.pow()를 이용해서 제곱근 + 1의 제곱을 반환한다.
false라면 문제에서 요구한대로 -1을 반환해주면 끝!
반응형