DEVLOG
프로그래머스 알고리즘#21 - 콜라츠 추측 본문
728x90
반응형
<문제>
<풀이>
tip num이 1인경우 while문에 진입하지 못하도록 막아야 num이 1일때도 정상적으로 작동한다.
그렇지 않으면 다 통과하더라도 1 케이스에서만 실패한다.
function solution(num) {
var cnt=0;
if(num === 1) return 0;
while(1){
num%2==0?num/=2:num=num*3+1;
if(cnt>=500) return -1
cnt++;
if(num === 1) return cnt;
}
}
function solution(num) {
var cnt=0;
while(num !== 1 && cnt<500){
num%2===0?num/=2:num=num*3+1;
cnt++;
}
return num===1?cnt:-1;
}
비슷한 동작이지만 완전 달라보이고
훨씬 깔끔하게 동작하는 코드로 수정했다.
728x90
반응형
'dev log > algorithm' 카테고리의 다른 글
프로그래머스 알고리즘#23 - 자연수 뒤집어 배열로 만들기 (0) | 2020.12.22 |
---|---|
프로그래머스 알고리즘#22 - 정수 내림차순으로 배치하기 (0) | 2020.12.22 |
프로그래머스 알고리즘#20 - 평균 구하기 (0) | 2020.12.21 |
프로그래머스 알고리즘#19 - 짝수와 홀수 (0) | 2020.12.21 |
프로그래머스 알고리즘#18 - x만큼 간격이 있는 n개의 숫자 (0) | 2020.12.21 |
Comments