ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ์ฝ๋ผ์ธ ์ถ์ธก
์ฝ๋ฉํ ์คํธ ์ฐ์ต > ์ฐ์ต๋ฌธ์ > ์ฝ๋ผ์ธ ์ถ์ธก
๐ฉ ๋ฌธ์ ์ค๋ช
1937๋ Collatz๋ ์ฌ๋์ ์ํด ์ ๊ธฐ๋ ์ด ์ถ์ธก์, ์ฃผ์ด์ง ์๊ฐ 1์ด ๋ ๋๊น์ง ๋ค์ ์์ ์ ๋ฐ๋ณตํ๋ฉด, ๋ชจ๋ ์๋ฅผ 1๋ก ๋ง๋ค ์ ์๋ค๋ ์ถ์ธก์ ๋๋ค. ์์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1-1. ์
๋ ฅ๋ ์๊ฐ ์ง์๋ผ๋ฉด 2๋ก ๋๋๋๋ค.
1-2. ์
๋ ฅ๋ ์๊ฐ ํ์๋ผ๋ฉด 3์ ๊ณฑํ๊ณ 1์ ๋ํฉ๋๋ค.
2. ๊ฒฐ๊ณผ๋ก ๋์จ ์์ ๊ฐ์ ์์
์ 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) {
answer = 0;
for(i=1; i<=500; i++){
if(num == 1){
break;
}
if(num%2 == 0){
num = num/2;
answer++;
} else {
num = num * 3 + 1;
answer++;
}
if(i == 500)
return -1;
} return answer;
}
for๋ฌธ๊ณผ if๋ฌธ์ ์ฌ์ฉํ์ต๋๋ค. num์ด 1์ธ ๊ฒฝ์ฐ, ์ง์์ธ ๊ฒฝ์ฐ, 3 ์ด์์ ํ์์ธ ๊ฒฝ์ฐ, i๊ฐ 500์ ๋๋ฌํ์ ๋ ๋ฑ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์์ฑํด ์ฃผ์์ต๋๋ค. ๊ธฐ๋ค์.
๐ฉ ๋ค๋ฅธ ํ์ด
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;
}
while๋ฌธ์ ์กฐ๊ฑด์ ๊ฑธ๊ณ , ์ผํญ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ์ฝ๋์ ๋๋ค. ๊ตฐ๋๋๊ธฐ ์์ด ๊น๋ํ๋ค์.
'Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ์ฝ๋ผ ๋ฌธ์ (1) | 2022.11.24 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ๋ฌธ์์ด ๋ด ๋ง์๋๋ก ์ ๋ ฌํ๊ธฐ (1) | 2022.11.24 |
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ๋ฌธ์์ด ๋ค๋ฃจ๊ธฐ ๊ธฐ๋ณธ (2) | 2022.11.22 |
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : K๋ฒ์งธ์ (2) | 2022.11.21 |
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ํธ๋ํฐ ๋ฒํธ ๊ฐ๋ฆฌ๊ธฐ (4) | 2022.11.21 |
๋๊ธ