728x90
๋ฐ์ํ
Programmers Lv.1 : ์ฝ๋ผ์ธ ์ถ์ธก
1937๋ Collatz๋ ์ฌ๋์ ์ํด ์ ๊ธฐ๋ ์ด ์ถ์ธก์, ์ฃผ์ด์ง ์๊ฐ 1์ด ๋ ๋๊น์ง ๋ค์ ์์ ์ ๋ฐ๋ณตํ๋ฉด, ๋ชจ๋ ์๋ฅผ 1๋ก ๋ง๋ค ์ ์๋ค๋ ์ถ์ธก์ ๋๋ค. ์์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ฃผ์ด์ง ์๊ฐ 6์ด๋ผ๋ฉด 6 โ 3 โ 10 โ 5 โ 16 โ 8 โ 4 โ 2 โ 1 ์ด ๋์ด ์ด 8๋ฒ ๋ง์ 1์ด ๋ฉ๋๋ค. ์ ์์ ์ ๋ช ๋ฒ์ด๋ ๋ฐ๋ณตํด์ผ ํ๋์ง ๋ฐํํ๋ ํจ์, solution์ ์์ฑํด ์ฃผ์ธ์. ๋จ, ์ฃผ์ด์ง ์๊ฐ 1์ธ ๊ฒฝ์ฐ์๋ 0์, ์์ ์ 500๋ฒ ๋ฐ๋ณตํ ๋๊น์ง 1์ด ๋์ง ์๋๋ค๋ฉด -1์ ๋ฐํํด ์ฃผ์ธ์.
์ ๋ ฅ๋ ์, num์ 1 ์ด์ 8,000,000 ๋ฏธ๋ง์ธ ์ ์์ ๋๋ค.
๋ด ํ์ด
function solution(num) {
var answer = 0;
for(let i=0; i <500; i++){
if(num !==1){
if(num %2 ==0){
num/=2;
}else{
num = num *3+1;
}
}else {
return answer = i
}
}
return answer = -1;
}
๋ค๋ฅธ ์ฌ๋๋ค์ ํ์ด
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;
}
728x90
๋ฐ์ํ
'ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Programmers Lv.1 : ๋๋์ด ๋จ์ด์ง๋ ์ซ์ ๋ฐฐ์ด (1) | 2022.11.14 |
---|---|
Programmers Lv.1 : ํธ๋ํฐ ๋ฒํธ ๊ฐ๋ฆฌ๊ธฐ (2) | 2022.11.14 |
Programmers Lv.1 : ๋ ์ ์ ์ฌ์ด์ ํฉ (1) | 2022.11.11 |
Programmers Lv.1 : x๋งํผ ๊ฐ๊ฒฉ์ด ์๋ n๊ฐ์ ์ซ์ (1) | 2022.11.11 |
Programmers Lv.1 ํ์ค๋ ์ (1) | 2022.11.11 |
๋๊ธ