지금 0단계 3페이지 / 1단계 1페이지를 풀고 있는 중인데(스파르타 다니면서 꾸준히 했음!) 오...
일단 판별문제까진 괜찮은데 뭔가 숫자를 제대로 이해하지 못해서 쉬운 풀이방법과 어려운 풀이 방법을 같이 정리해두고자 한다.
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;
말그대로 제곱이 맞다면 제곱근을, 아니면 -1을 리턴해주는 방법이다.
사실 for문을 감쌀 생각을 하지 않았다보니 다음 방법으로 서치를 해서 풀었다...
function solution(n) {
if(Number.isInteger(Math.sqrt(n))){
return Math.pow(Math.sqrt(n)+1, 2)
}
else {
return -1
}
}
math함수와 pow함수 그리고 sqrt함수의 존재를 알면 풀 수 있다.
math함수는 그렇다치는데 sqrt는 몰랐고...
다만 이 함수는 엑셀에서 사용하기 때문에 만약 엑셀을 잘 다룰줄 알았다면 나도 이 함수에 대한 존재를 알았을 것 같다.
음 하지만 이 pow와 sqrt 함수는 c언어에서 주로 쓰는 것같아 상당히 겁이 난다
pow함수는 기본이 되는 숫자의 n 제곱을 구하는 그러니까 ~의 ~승이 되는...! 것이다.
sqrt는 루트를 씌워서 계산된 값을 반환해주는 것이다
그러니까 sqrt=루트 였던 것이다...!!
우리가 잘 알고 있는 수식을 코드로써 풀이를 하면 pow와 sqrt함수가 되는건데 와...
진짜 진땀이 흐른다
아니 알겠는데
진짜?
진짜냐고
일단 정신이 혼미해져서 mdn 링크를 끌고 왔다
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/pow
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/sqrt
나... 힘낼께...!