728x90
# 문제
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
# 답안
// 1. 입력: n -> 정수 1,2,3 같은거
// 2. 출력: n이 제곱수면 1, 아니면 2
// 방법 1) if...else문 사용
function solution(n) {
let sqrt = Math.sqrt(n); // n의 제곱근을 계산
if (Number.isInteger(sqrt)) { // 계산된 제곱근이 정수인지를 확인
return 1; // 정수이면, 1 반환
}else{
return 2; // 정수가 아니면, 2 반환
}
}
// 방법 2) 삼항연산자 사용
function solution(n) {
return Number.isInteger(Math.sqrt(n)) ? 1 : 2;
}
Math.squrt()
- 주어진 숫자의 제곱근을 반환하는 JavaScript의 내장 함수
- sqrt는 "square root"의 약어에서 유래
- 예를 들어, Math.sqrt(25)를 호출하면 25의 제곱근인 5가 반환
Number.isInteger()
- 주어진 값이 정수인지 여부를 판단하는 JavaScript의 내장 함수
- Number는 JavaScript의 내장 객체 중 하나이며, isInteger()은 이 객체의 정적(static) 메서드
- "Integer"는 영어로 "정수"를 의미
ex. n=26인 경우
1. Math.sqrt(n)을 통해 제곱근을 계산 ▶ Math.sqrt(26)는 약 5.099
2. Number.isInteger(sqrt)를 통해 계산된 제곱근이 정수인지 확인
3. sqrt가 정수가 아니므로 Number.isInteger(sqrt)는 false를 반환
4. 따라서 if 조건문에서는 false가 됨 ▶ else 블록으로 이동
5. else 블록에서는 2를 반환
▶ 따라서 주어진 자연수 n이 26인 경우에는 함수가 2를 반환
728x90
'Coding Test > Programmers' 카테고리의 다른 글
[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 39 - 자릿수 더하기) (0) | 2024.02.07 |
---|---|
[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 38 - 모음 제거) (0) | 2024.02.07 |
[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 36 - 삼각형의 완성조건 (1)) (2) | 2024.02.07 |
[프로그래머스/JavaScript] 코딩 테스트풀이 (문제 35 - 세균 증식) (2) | 2024.02.07 |
[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 34 - 문자열 안에 문자열) (0) | 2024.02.04 |