나의 풀이
public int solution(int num)
{
int answer = 0;
long number = num;
if (number != 1)
{
while (number != 1)
{
answer++;
number = (number % 2 == 0) ? number /= 2 : (number * 3) + 1;
if (answer >= 500)
{
answer = -1;
break;
}
}
}
else { answer = 0; }
return answer;
}
이번 문제는 크게 어렵지 않았던 것 같습니다,
단 주의 해야하는 점이, 3을 곱하는 과정에서 int 범위를 넘길 수 있으니 long으로 자료형을 바꿔주는
과정이 필요했습니다.
다른 사람 풀이
for문을 사용해서 i값을 이용하면 모든 조건을 쉽게 해결 할 수 있다는 것을 알게 되었네요..
'알고리즘' 카테고리의 다른 글
프로그래머스 나누어 떨어지는 숫자 배열 (0) | 2024.02.16 |
---|---|
프로그래머스 서울에서 김서방 찾기 (0) | 2024.02.15 |
프로그래머스 두 정수 사이의 합 (1) | 2024.02.13 |
백준 10813번: 공바꾸기 (0) | 2023.11.24 |
백준 10807 (0) | 2023.11.22 |