728x90
📌 문제
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
- 0 ≤ n ≤ 1,000,000
📌 풀이
예를 들어 144의 경우 12의 제곱수 이기 때문에 1이 나오고, 976같이 제곱수가 아닌 경우에는 2를 출력해야 한다.제곱수인지 아닌지 어떻게 판별할까?
Math.sqrt()를 사용한다.
이 메서드는 인수의 제곱근을 반환한다.
즉 Math.sqrt(144)는 12를 리턴하고, Math.sqrt(976)은 31.24... 를 리턴한다.
리턴된 값에 똑같이 동일한 값을 곱했을 때 주어진 정수 n이 나온다면 그것은 제곱수일 것이다.
킥은 제곱근의 소수점 부분을 삭제하는 것이다. 그렇지 않으면 976의 경우 975.999.... 가 나와서 값이 달라진다.
📌 코드
function solution(n) {
let a = parseInt(Math.sqrt(n));
if (a*a === n) {
return 1
} else {
return 2
}
}
728x90
'⚙️ 코딩테스트' 카테고리의 다른 글
[JavaScript] 프로그래머스 코딩테스트 입문 : 개미군단 (0) | 2023.03.24 |
---|---|
[JavaScript] 프로그래머스 코딩테스트 입문 : 문자열 안에 문자열 (0) | 2023.03.23 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 숨어있는 숫자의 덧셈 (1) (0) | 2023.03.22 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 자릿수 더하기 (0) | 2023.03.22 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 중앙값 구하기 (0) | 2023.03.22 |