반응형
https://programmers.co.kr/learn/courses/30/lessons/12943
나의 풀이
function solution(num) {
let repeatCount = 0;
while(num !== 1) {
if (repeatCount === 500) {
repeatCount = -1;
break;
}
if (!(num % 2)) {
num = num / 2;
repeatCount += 1;
continue;
}
num = (num * 3) + 1;
repeatCount += 1;
}
return repeatCount;
}
while문으로 num이 1이 될 때까지 반복작업을 수행한다.
if문을 활용해서 조건에 따른 작업을 수행하고 repeatCount를 증가시킨다.
이후에 repeatCount를 반환!
다른 사람의 풀이
function collatz(num,count = 0) {
return num == 1 ? (count >= 500 ? -1 : count) : collatz(num % 2 == 0 ? num / 2 : num * 3 + 1,++count);
}
이분은 삼항 연산자와 재귀 함수를 사용하셨다.
그리고 쉼표 연산자를 사용하였다.
한 줄에 코드를 끝내는 것이 멋져보인다!
반응형
'IT > Algorithm' 카테고리의 다른 글
프로그래머스) 오픈채팅방 (0) | 2021.10.21 |
---|---|
프로그래머스) x만큼 간격이 있는 n개의 숫자 (0) | 2021.10.21 |
프로그래머스) 약수의 개수와 덧셈 (0) | 2021.10.20 |
프로그래머스) 나머지가 1이 되는 수 찾기 (0) | 2021.10.19 |
프로그래머스) 소수 만들기 (0) | 2021.10.19 |