https://school.programmers.co.kr/learn/courses/30/lessons/12934
JS
문제
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
제한 사항
n은 1이상, 50000000000000 이하인 양의 정수입니다.
입출력 예
계획
제곱근 구하는 함수 사용
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴
제곱근이 없으면 -1리턴S
문제
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
제한 사항
n은 1이상, 50000000000000 이하인 양의 정수입니다.
입출력 예
계획
제곱근 구하는 함수 사용
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴
제곱근이 없으면 -1리턴
참고, 풀이
console.log(Math.sqrt(9)); // 3
console.log(Math.sqrt(6)); // 2.449489742783178
console.log(Math.sqrt(-9)); // NaN
1. 제곱근 존재 여부를 Math.sqrt(n)의 값이 정수일 경우로 제한하기
2. 있으면 (Math.sqrt(n)+1)**
제곱하는 방법
Math.pow(result, 2);
(Math.sqrt(n) + 1) ** 2
정수 판별하기
console.log(Number.isInteger(10)); // true
console.log(10 % 1 === 0); // true
console.log("-O-----------------------X-");
console.log(Number.isInteger(9.5)); // false
console.log(9.5 % 1 === 0); // false
console.log("-X---------------------(-)-");
console.log(Number.isInteger(-9)); // true
console.log(-9 % 1 === 0); // true
Number.isInteger(10);
// number % 1 === 0;
function solution(n) {
return Math.sqrt(n) % 1 === 0 ? Math.pow(Math.sqrt(n) + 1, 2) : -1;
}
console.log(solution(10)); // -1
console.log(solution(9)); // 16
화살표함수 만들기
const solution = n =>
Math.sqrt(n) % 1 === 0 ? Math.pow(Math.sqrt(n) + 1, 2) : -1;
답
const solution = n =>
Math.sqrt(n) % 1 === 0 ? Math.pow(Math.sqrt(n) + 1, 2) : -1;
코드 간략화하기
const solution = n => {
const sqrt = Math.sqrt(n);
return sqrt % 1 === 0 ? Math.pow(sqrt + 1, 2) : -1;
};
성능: Math.sqrt를 한 번만 호출하는 것이 더 좋음
출처
제곱근 Math.sqrt(n); : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/sqrt
제곱하기 Math.pow( n,2): https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/pow
정수판별 : https://hianna.tistory.com/463
◆ C
◆ C
계획
참고, 풀이
답
//
코드 간략화하기
출처
◆ C#
◆ C#
계획
참고, 풀이
답
//
코드 간략화하기
출처
◆ C++
◆ C++
계획
참고, 풀이
답
//
코드 간략화하기
출처
'내일배움 과제 > 기타 과제' 카테고리의 다른 글
알고리즘 21번 - 추가공부 (0) | 2024.11.26 |
---|---|
알고리즘 20-추가공부 (0) | 2024.11.25 |
알고리즘 18번 - 추가공부 (0) | 2024.11.21 |
스텐다드 24.11.19 과제 (0) | 2024.11.20 |
알고리즘 17번 - 추가공부 (0) | 2024.11.20 |