풀이과정
무한 반복문을 돌려주되, 탈출 조건은 두 가지가 있다.
첫 번째로는 입력된 수가 1이 될 경우
두 번째로는 500번을 수행해도 1이 안 될 경우이다.
그러므로 num이 1이 된다면 while문을 탈출해 answer을 출력해주도록 하였고,
answer이 501번이 되면 return -1을 해주며 함수를 끝내는 식으로 구현했다.
#include <string>
#include <vector>
using namespace std;
int solution(int num) {
int answer = 0;
while(1){
if(num == 1) break;
if(answer == 501) return -1;
if(num % 2 == 0) num /= 2;
else if(num % 2 == 1) num = num * 3 + 1;
answer++;
}
return answer;
}
'🍞 Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스][Level1] 폰켓몬 c++ (0) | 2022.09.03 |
---|---|
[프로그래머스][Level1] 평균 구하기 c++ (0) | 2022.09.03 |
[프로그래머스][Level1] 최대공약수와 최소공배수 c++ (0) | 2022.09.03 |
[프로그래머스][Level1] 짝수와 홀수 c++ (0) | 2022.09.02 |
[프로그래머스][Level1] 직사각형 별찍기 c++ (0) | 2022.09.02 |