728x90
반응형
풀이
function solution(n) {
if (Math.sqrt(n) === Math.floor(Math.sqrt(n))) {
return (Math.sqrt(n) + 1) ** 2;
} else {
return -1;
}
}
Math.sqrt()메서드를 이용하여 완전히 딱 정수로 떨어진다면 (Math.floor()메서드 적용한것과 비교) 하나 더한것에서 제곱한 값을 리턴해준다.
아닐 경우 -1을 리턴한다.
다른 스터디원 풀이
function solution(n) {
// 입력 : 양의 정수 n
// 출력 : 제곱근이 양의 정수이면 제곱근 +1 의 제곱, 아니라면 -1 리턴
// 제곱근 x : 제곱하면 n이 되는 수
// 1. n의 제곱근 root를 구한다.
// 2. root가 정수인지 판별하고, 정수일 경우 root + 1 을 거듭제곱하여 리턴한다.
// 3. 판별 결과가 false 일 경우 -1을 리턴한다.
let root = Math.sqrt(n);
if (Number.isInteger(root)) return (root + 1) ** 2;
else return -1;
}
console.log(solution(121));
isInteger() 메서드를 사용해서 정수인지 아닌지 판단하셨는데 나보다 더 정확하다고 느꼈다.
'🍀 코딩 테스트 > 프로그래머스' 카테고리의 다른 글
LV 1 - 직사각형 별 찍기 (0) | 2022.08.21 |
---|---|
LV1 - 제일 작은 수 제거하기 (0) | 2022.08.13 |
LV 1 - 정수 내림차순으로 배치하기 (0) | 2022.08.12 |
LV1 - 자연수 뒤집어 배열로 만들기 (0) | 2022.08.12 |
LV1 - 자릿수 더하기 (0) | 2022.08.12 |