콜라츠 추측

문제

 


나의 생각

 

들어오는 값에 대해서 1이 아니면 while 값에 계산이 되도록 함. 

짝수 or 홀수에 대한 값에 대한 식을 구분을 하여 작성.

answer에 대한 값은 while에 진입 할때마다 증가연산자 사용.

 


나의 답안

 

여기서 체크해야하는 점은 길이가 긴 값들이 들어오면 long이 아니면 값이 제대로 나오지 않는다. 그러기에 해당 값에 대한 문제를 해결하기 위해 long 타입 지정함. 

public static int solution(long num) {
    int answer = 0;

    while (num != 1){
        answer++;
        if(num % 2 == 0) {
            num = num  / 2;
        } else {
            num = (num * 3) + 1;
        }

        if (answer > 500){
            answer = -1;
            break;
        }
    }

    return answer;
}

 

'Programmers 문제풀이 > Lv.1' 카테고리의 다른 글

문자열을 정수로 바꾸기  (0) 2023.02.28
정수 제곱근 판별  (0) 2023.02.28
평균 구하기  (0) 2023.02.27
핸드폰 번호 가리기  (0) 2023.02.24
하샤드 수  (0) 2023.02.24