문제 링크
https://programmers.co.kr/learn/courses/30/lessons/12943
C++ 풀이
#include <string>
#include <vector>
using namespace std;
int answer;
void func(long &num) {
if (num % 2 == 0)
num /= 2;
else
num = (num * 3) + 1;
}
int solution(int num) {
long t = num; //int -> long 타입 변환 후 풀이
answer = 0;
while (t != 1) {
func(t);
answer++;
if (answer > 500)
return -1;
}
return answer;
}
문제 값 자체는 int타입으로 주어지지만, 중간 계산값이 범위를 초과되는 경우를 고려하여 long으로 타입 변환 후 풀었다.
반응형
'알고리즘 · 코딩' 카테고리의 다른 글
[프로그래머스] 소수 찾기 (0) | 2020.05.05 |
---|---|
[프로그래머스] 피보나치 수 (0) | 2020.04.30 |
[프로그래머스] 하샤드 수 (0) | 2020.04.26 |
[프로그래머스] 징검다리 건너기 (0) | 2020.04.23 |
[프로그래머스] 정수 제곱근 판별 (0) | 2020.04.21 |