๊ฐœ๋ฐœ์ผ์ง€

[Java] ์ฝœ๋ผ์ธ  ์ถ”์ธก ๋ณธ๋ฌธ

Algorithm

[Java] ์ฝœ๋ผ์ธ  ์ถ”์ธก

O'mil 2024. 5. 10. 12:32
728x90

๐Ÿ”— ๋งํฌ

์ฝœ๋ผ์ธ  ์ถ”์ธก

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

๐Ÿ“Œ ๋ฌธ์ œ ์„ค๋ช…

  • Collatz๋ผใ„ด ์‚ฌ๋žŒ์— ์˜ํ•ด ์ œ๊ธฐ๋œ ์ถ”์ธก์„ ๋ณด๊ณ  ๋ช‡ ๋ฒˆ์„ ๋ฐ˜๋ณตํ•ด์•ผ ํ•˜๋Š”์ง€ ๋ฐ˜ํ™˜ํ•ด๋ผ
    ๋‹จ, ์ฃผ์–ด์ง„ ์ˆ˜๊ฐ€ 1์ธ ๊ฒฝ์šฐ์—๋Š” 0์„, ์ž‘์—…์„ 500๋ฒˆ ๋ฐ˜๋ณตํ•  ๋•Œ๊นŒ์ง€ 1์ด ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด -1์„ ๋ฐ˜ํ™˜

๐Ÿ‘€ ์˜ˆ์ œ

โœ๏ธ ํ’€์ด ์ˆœ์„œ

  1. num์ด 1์ด ์•„๋‹ ๋•Œ while๋ฌธ์œผ๋กœ ๋ฐ˜๋ณต
  2. cnt๊ฐ€ 500๋ฒˆ์ด๋ฉด -1 ๋ฐ˜ํ™˜
  3. ์กฐ๊ฑด๋ฌธ ์‚ฌ์šฉํ•ด์„œ, ์ง์ˆ˜๋ผ๋ฉด ๋‚˜๋ˆ„๊ธฐ 2, ํ™€์ˆ˜๋ผ๋ฉด ๊ณฑํ•˜๊ธฐ 3 ํ”Œ๋Ÿฌ์Šค 1.
  4. cnt๊ฐ’ ๋ฐ˜ํ™˜

๐Ÿ’ป ์ฝ”๋“œ

class Solution {
    public int solution(int num) {
        int answer = 0;
        
        while (num != 1) {
            if (answer == 500) {
                return -1;
            }
            
            if (num % 2 == 0) {
                num /= 2;
            } else {
                num = num * 3 + 1;
            }
            answer++;
            
        }
        return answer;
    }
}

๐Ÿ’ก ๊ฒฐ๊ณผ

์ž‰..? 488๋ฒˆ์ธ๋ฐ ์™œ -1..?

 

์ฐพ์•„๋ณด๋‹ˆ ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์ด intํ˜•์ด๋ผ์„œ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹จ๋‹ค.

long๊ฐ’์œผ๋กœ ๋ฐ”๊พธ๋ฉด ๋œ๋‹ค๊ธธ๋ž˜ ๋ƒ‰ํผ ๋ฐ”๊ฟจ๋‹ค!


๐Ÿ’ป์ฝ”๋“œ

class Solution {
    public int solution(long num) {
        int answer = 0;
        
        while (num != 1) {
            if (answer == 500) {
                return -1;
            }
            
            if (num % 2 == 0) {
                num /= 2;
            } else {
                num = num * 3 + 1;
            }
            answer++;
            
        }
        return answer;
    }
}

๐Ÿ’ก๊ฒฐ๊ณผ

์ž˜ ๋‚˜์˜จ๋‹ค๐Ÿ‘

์ด๋ ‡๊ฒŒ ๋˜ ํ•˜๋‚˜๋ฅผ ๋ฐฐ์›Œ๊ฐ„๋‹ค. ์ด๋Ÿฐ ๊ฑธ ์•Œ์•„๋‚ด๋Š” ์‚ฌ๋žŒ์€ ์ฒœ์žฌ์ธ๊ฐ€?


๐Ÿ“šReference

728x90
Comments