https://school.programmers.co.kr/learn/courses/30/lessons/12934
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
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 |