https://school.programmers.co.kr/learn/courses/30/lessons/12943

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


그냥 for문을 돌려서 해결

 

- Java

근데 대충 돌려서 했더니 자꾸 어딘가 틀리는 것을 발견했다.

설마 int 범위 넘어가나? 라 생각하고 long으로 바꾸고 해결했다.

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

 

 

- Ruby

def solution(num)
    answer = 0
    while num!=1
        if answer>500
            answer=-1
            break
        end
        
        if num%2==0
            num=num/2
        else
            num=num*3+1
        end
        answer=answer+1
    end
    return answer
end

+ Recent posts