프로그래머스 Lv.1 '콜라츠 추측' 자바
Q. 1937년 Collatz란 사람에 의해 제기된 이 추측은
주어진 수가 1이 될 때까지 다음 작업을 반복하면
모든 수를 1로 만들 수를 1로 만들 수 있다는 추측이다.
작업은 다음과 같다.
1-1. 입력된 수가 짝수라면 2로 나눈다.
1-2. 입력된 수가 홀수라면 3을 곱한 후 1을 더한다.
2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복한다.

class Solution {
public int solution(long num) {
int answer = 0;
while (num != 1) {
if (num % 2 == 0) {
num /= 2;
} else if (num % 2 != 0) {
num = num * 3 + 1;
}
answer++;
if (answer >= 500) {
answer = -1;
break;
}
}
return answer;
}
}
반복문 while을 통해 1이 나올때까지 반복하되
500을 넘어가면 -1을 반환하고 중단하도록 했다.
그리고 if문으로 짝수인 경우와 홀수인 경우를
나누어 계산하도록 했다.
마지막 테스트에서 오류가 났는데,
숫자가 너무 커서 int를 long으로 변환해주니 해결됐다.
'Log > Coding Test' 카테고리의 다른 글
| Day91_Programmers Lv.1 '서울에서 김서방 찾기' Java (0) | 2023.12.28 |
|---|---|
| Day90_Programmers Lv.1 음양 더하기 Java (0) | 2023.12.26 |
| Day88_Programmers Lv.1 두 정수 사이의 합 Java (0) | 2023.12.25 |
| Day87_Programmers Lv.1 하샤드 수 Java (0) | 2023.12.25 |
| Day86_Programmers Lv.1 '정수 내림차순으로 배치하기' Java (1) | 2023.12.19 |