function solution(num) {
var answer = 0;
for (let i=0; i<500; i++) {
if (num != 1) {
if (num % 2 === 0) {
num= num/2
} else {
num= num*3+1
}
} else {
return i
}
}
return answer = -1;
}
function solution(n) {
let sqrt = Math.sqrt(n);
if (sqrt%1!==0) {
return -1
}
return Math.pow(sqrt+1,2);
}
function solution(n) {
let sqrt = Math.sqrt(n);
if (sqrt%1 == 0) {
return Math.pow(sqrt+1,2)
}
return -1;
}
function solution(n) {
let sqrt = Math.sqrt(n);
return Number.isInteger(sqrt) ? Math.pow(sqrt + 1, 2) : -1;
}
isInteger를 활용해서 삼항연산자를 이용하여 정수가 맞다면 Math.pow(sqrt + 1, 2)를 아니면 -1을 return해줬다.
let n = 121
function solution(n) {
var answer = 0;
if (Math.sqrt(n)%1===0) {
return (Math.sqrt(n)+1) * (Math.sqrt(n)+1)
} else {
return -1
}
}
console.log(solution(n))
다시 풀어본 문제
제곱을 Math.pow함수가 아닌 그대로 곱해주는 형식으로 작성했다.
function solution(arr) {
var answer = [];
if (arr.length == 1) {
answer = [-1]
} else {
arr.splice(arr.indexOf(Math.min(arr)),1)
answer = arr
} return answer;
}
이 코드는 코드 실행에서 2문제는 통과했지만, 채점 했을 때 정답처리가 아니였다. 뭐가 문제지..
function solution(arr) {
let answer= []
let min = Math.min(...arr)
if (arr.length === 1) {
answer= [-1]
} else{
answer = arr.filter((num)=>num!=min)
} return answer
}
알고리즘 조원님 블로그를 참고해 작성한 답안,, 왜 splice는 안되징..
function solution(x) {
var answer = 0;
let arr= x.toString().split("")
for (let i = 0; i < arr.length; i++) {
answer+=Number(arr[i])
} if (x%answer==0) {
return true
} else {
return false;
}
}
String과 toString의 차이점이 뭘까
- Number.isinteger()
주어진 값이 정수인지 판별
매개변수의 값이 정수면 true를, 아니면 false를 반환- arr.splice()
배열에 데이터 추가,제거, 교체, 추출
요소를 제거하거나 대체하여 배열을 변경하는 데 사용- JS의 배열에서 마지막 요소 제거
splice,slice,pop,filter...