Deff_Dev
[프로그래머스] 콜라츠 추측 (C++) 본문
문제
풀이
이 문제는 num이 짝수 일 때는 num / 2를 하고, 홀수 일 때는 num * 3 + 1 규칙을 500번 적용시킨다 했을 때, 500번 안에 num이 1이 된다면 해당 규칙을 적용시킨 횟수를 반환하고, num이 1이 되지 않는다면 -1를 반환하는 문제이다.
쉬운 문제지만, num의 타입을 int가 아닌 long으로 변환한 뒤, 규칙을 적용시켜야 한다. (테스트 케이스 3번)
using namespace std;
int solution(int num) {
if(num == 1) return 0;
long n = num;
for(int i = 1; i <= 500; i++){
if(n % 2 ==0) n /=2;
else n = (n * 3) + 1;
if( n == 1) return i;
}
return -1;
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 배열 조각하기 (C++) (0) | 2024.12.02 |
---|---|
[프로그래머스] 없는 숫자 더하기 (C++) (0) | 2024.11.21 |
[프로그래머스] 롤케이크 자르기 (C++) (1) | 2024.11.17 |
[프로그래머스] 귤 고르기 (C++) (0) | 2024.11.15 |
[프로그래머스] 햄버거 만들기 (C++) (0) | 2024.11.13 |