๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 1๋‹จ๊ณ„ : ์ฝœ๋ผ์ธ  ์ถ”์ธก

by _ํ† ๋งคํ†  2022. 11. 14.
728x90

๐Ÿ–ฑ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 1๋‹จ๊ณ„ : ์ฝœ๋ผ์ธ  ์ถ”์ธก ๐Ÿ–ฑ


#1. ์ฃผ์–ด์ง„ ์ˆ˜๊ฐ€ 6์ด๋ผ๋ฉด 6 โ†’ 3 โ†’ 10 โ†’ 5 โ†’ 16 โ†’ 8 โ†’ 4 โ†’ 2 โ†’ 1 ์ด ๋˜์–ด ์ด 8๋ฒˆ ๋งŒ์— 1์ด ๋ฉ๋‹ˆ๋‹ค. ์œ„ ์ž‘์—…์„ ๋ช‡ ๋ฒˆ์ด๋‚˜ ๋ฐ˜๋ณตํ•ด์•ผ ํ•˜๋Š”์ง€ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”. ๋‹จ, ์ฃผ์–ด์ง„ ์ˆ˜๊ฐ€ 1์ธ ๊ฒฝ์šฐ์—๋Š” 0์„, ์ž‘์—…์„ 500๋ฒˆ ๋ฐ˜๋ณตํ•  ๋•Œ๊นŒ์ง€ 1์ด ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด -1์„ ๋ฐ˜ํ™˜ํ•ด ์ฃผ์„ธ์š”.

์ฝœ๋ผ์ธ  ์ถ”์ธก
1937๋…„ Collatz๋ž€ ์‚ฌ๋žŒ์— ์˜ํ•ด ์ œ๊ธฐ๋œ ์ด ์ถ”์ธก์€, ์ฃผ์–ด์ง„ ์ˆ˜๊ฐ€ 1์ด ๋  ๋•Œ๊นŒ์ง€ ๋‹ค์Œ ์ž‘์—…์„ ๋ฐ˜๋ณตํ•˜๋ฉด, ๋ชจ๋“  ์ˆ˜๋ฅผ 1๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ์ถ”์ธก์ž…๋‹ˆ๋‹ค.
1-1. ์ž…๋ ฅ๋œ ์ˆ˜๊ฐ€ ์ง์ˆ˜๋ผ๋ฉด 2๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค.
1-2. ์ž…๋ ฅ๋œ ์ˆ˜๊ฐ€ ํ™€์ˆ˜๋ผ๋ฉด 3์„ ๊ณฑํ•˜๊ณ  1์„ ๋”ํ•ฉ๋‹ˆ๋‹ค.
2. ๊ฒฐ๊ณผ๋กœ ๋‚˜์˜จ ์ˆ˜์— ๊ฐ™์€ ์ž‘์—…์„ 1์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ ์‚ฌํ•ญ : ์ž…๋ ฅ๋œ ์ˆ˜, num์€ 1 ์ด์ƒ 8,000,000 ๋ฏธ๋งŒ์ธ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.

function solution(num) {
        var answer = 0;
        while(num!=1){
              if(num%2==0){
                num /= 2
              }else if(num%2==1){
                num = num*3+1
              }
            answer+=1
        }
        if(answer>=500){
            return -1
        }else{
              return answer;
        }
    
    }
    

1. while๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ num์ด 1์ด ๋  ๋•Œ ๊นŒ์ง€ ๋ฐ˜๋ณต์‹œํ‚ต๋‹ˆ๋‹ค. (์กฐ๊ฑด์€ num๊ฐ’์ด 1์ด ์•„๋‹ˆ๋ผ๋ฉด ๊ณ„์† ๋ฐ˜๋ณต)
2. if๋ฌธ์œผ๋กœ ์ง์ˆ˜์ผ ๋•Œ์™€ ํ™€์ˆ˜์ผ ๋•Œ ์กฐ๊ฑด๋ฌธ์„ ๋‹ฌ์•„์ค€ ๋’ค ๋ฐ˜๋ณตํšƒ์ˆ˜๋ฅผ answer ๊ฐ’์œผ๋กœ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.
3. ๋ฐ˜๋ณต๋ฌธ ๋ฐ–์œผ๋กœ ๋ฒ—์–ด๋‚˜ if๋ฌธ์„ ํ†ตํ•ด ๋งŒ์•ฝ ๋ฐ˜๋ณตํšŸ์ˆ˜๊ฐ€ 500์ด์ƒ์ผ ๊ฒฝ์šฐ ๋ฆฌํ„ด -1์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์•„๋‹ ๊ฒฝ์šฐ answer ๊ฐ’์„ ๋ฆฌํ„ด์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.


#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;
    }
    

while๋ฌธ๊ณผ ์กฐ๊ฑด์‚ผํ•ญ์ž๋กœ ํ•œ๋ฒˆ์— ์ž‘์„ฑํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ์•„์ฃผ ๊น”๋”ํ•ฉ๋‹ˆ๋‹ค!

728x90

๋Œ“๊ธ€


Lucky Charms Rainbow
js
html
css