728x90
반응형
(1) 내 코드
function solution(num) {
let count = 0;
if (num === 1) return 0;
while (true) {
if (num % 2 === 0) {
num = num / 2;
count++;
} else {
num = num * 3 + 1;
count++;
}
if (num === 1) {
break;
}
if (count === 500) {
return -1;
}
}
return count;
}
▶ 생각하지 못한 부분 : num =1 이면 예외처리해줘야함 => return 0
반복
숫자가 짝수야? 그럼 나누기 2 (count +1)
숫자가 홀수야? 그럼 곱하기 3 +1 (count +1)
:
500번 되도 못했네? -1 끝
(2) 다른사람 풀이
function collatz(num) {
var answer = 0;
while(num !=1 && answer !=500){
num%2==0 ? num = num/2 : num = num*3 +1;
answer++;
}
return num == 1 ? answer : -1;
}
깔끔하다..
num =1 아니고 anwser이 500이 아닐때 ( 들어가서 삼항연산자 + answer +1)
끝.
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스 | JavaScript] 나누어 떨어지는 숫자 배열 (1) | 2023.11.14 |
---|---|
[프로그래머스 | JavaScript] 서울에서 김서방 찾기 (0) | 2023.11.14 |
[프로그래머스 | JavaScript] 두 정수 사이의 합 (1) | 2023.11.13 |
[프로그래머스 | JavaScript] 하샤드 수 (0) | 2023.11.13 |
[프로그래머스 | JavaScript] 정수 내림차순으로 배치하기 (1) | 2023.11.11 |