3주차 수요일 알고리즘

문혜민·2022년 3월 30일
0

3주차 수업내용

목록 보기
4/6

콜라츠 추측

function solution(num) {
let answer = 0;
for(let i =0; i<500; i++){
if(num===1){break;
}
answer++
console.log(answer,num)
if(num%2===0){
num/=2
}else{num=num*3+1}

}return num!==1?-1:answer
}

예외처리는 최상단!!!!!
왜냐하면 처음부터 1이 입력되었을 수도있음!
while문

function solution(num) {
let answer = 0;
while(num!==1){
if(answer>=500){
return -1
}
answer++
num=num%2===0
?num/2
:(num*3)+1

}return answer
}

메소드

function solution(num) {
let answer = 0;
let result = new Array( 500 )
.fill(1)
.reduce(acc=>{
if(acc!==1){
answer++
return acc%2===0
? acc/2
: (acc*3)+1;
}else{return 1}
},num)

return result!==1? -1:answer

}

profile
프론드엔드 개발하면서 메모장처럼 쓰는즁

0개의 댓글