728x90
🔥 Programmers Lv.1 : 정수 제곱근 판별
🔍 문제 : " 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. "
📎 조건 :
∙ n은 1이상, 50000000000000 이하인 양의 정수입니다.
∙ n은 1이상, 50000000000000 이하인 양의 정수입니다.
👉🏻 My answer
function solution(n) {
if(Math.sqrt(n) % 1 !== 0){
return -1;
} else {
return(Math.sqrt(n) + 1)*(Math.sqrt(n) + 1)
}
}
: 제곱근의 값이 1로 나누었을 때 나머지가 있으면 양의 정수 x의 제곱이 아니기 때문에 -1을 리턴하고 그 외에는 x+1을 제곱한다.
👉🏻 Another ways
function solution(n) {
var answer = 0;
for(let i=0, a=0; i<=n; i++){
if(n/i===i){
a = i + 1
return a*a
} else {
answer = -1
}
}
return answer;
}
저의 방법과 비슷하지만 좀 더 이해하기 쉬운 방법일 것 같습니다.
'알고리즘 도장깨기' 카테고리의 다른 글
프로그래머스 Lv.1 "정수 내림차순으로 배치하기" (1) | 2022.11.07 |
---|---|
프로그래머스 Lv.1 "문자열을 정수로 바꾸기" (1) | 2022.11.07 |
프로그래머스 Lv.1 "수박수박수박수박수박수?" (2) | 2022.11.04 |
프로그래머스 Lv.1 "서울에서 김서방 찾기" (3) | 2022.11.02 |
프로그래머스 Lv.1 "자연수 뒤집어 배열로 만들기" (3) | 2022.11.01 |
댓글