728x90
▶문제 : 코딩 테스트 연습 - 콜 라츠 추측 | 프로그래머스 (programmers.co.kr)
▶코드 작성
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int num)
{
long long answer = num;//num값이 int최댓값을 넘을 수 있으므로 long long
for (int i = 0; i < 500; i++)
{
if (answer == 1) return i;//1이면 i반환
if (answer % 2 == 0) answer /= 2;//짝수일 때
else answer = answer * 3 + 1;//홀수일 때
}
return -1;
}
▶해석
num값이 크면 홀수일 때 int최댓값을 넘을 수 있으므로 long long으로 미리 바꾸어준다. for문을 이용하여 i를 500이 넘을 때까지 반복하여 1이 되면 i값을 반환하고 i값이 500을 넘으면 -1을 반환한다.
728x90
'프로그래머스 > C' 카테고리의 다른 글
프로그래머스 Level 1 : 하샤드 수 C언어 (0) | 2021.12.20 |
---|---|
프로그래머스 Level 1 : 평균 구하기 C언어 (0) | 2021.12.20 |
프로그래머스 Level 1 : 짝수와 홀수 C언어 (0) | 2021.12.20 |
프로그래머스 Level 1 : 정수 제곱근 판별 C언어 (0) | 2021.12.19 |
프로그래머스 Level 1 : 자연수 뒤집어 배열로 만들기 C언어 (0) | 2021.12.19 |
댓글