function solution(num) {
let count = 0;
function test(n) {
if(count > 499) return -1;
if(n === 1) return count;
count++;
n % 2 === 0 ? res(n / 2) : res((n * 3) + 1);
}
test(num);
return count > 499 ? -1 : count;
}
count
변수를 만들어준다.res
를 만들어준다.if(count > 499) return -1;
count
변수를 리턴하는 로직.if(n === 1) return count;
count
를 증가시킨다.count++;
n % 2 === 0 ? test(n / 2) : test((n * 3) + 1);
res
의 인자로 num
을 넣어주고, 반복횟수가 499번보다 크다면 -1을, 그렇지 않다면 count
를 리턴해준다.프로그래머스 레벨1 문제들 중 어중간한 문제들은 다 풀어서 이제 어려운 문제들밖에 안남았다...
레벨1도 이렇게 어려운데 2-3단계는 얼마나 어려울지 정말 감도 안온다..
콜라츠 추측은 전에도 여러번 풀기 위해 노력했지만 실패한 문제로 아직도 로직을 정확히 파악했다하긴 애매하다..😂
사실 계속 while문을 사용하여 풀어보고 싶었는데 아무리 풀어봐도 풀리지 않았다...
평소 알고리즘 문제를 풀때도 자주 사용하는 함수가 아닌 새로운 함수를 사용하고 싶어서 계속 시도해보는데 익숙치 않아서 그런가 계속 오류가 나와서 결국은 익숙한 방식으로 풀게 되는 것 같다.
새로운 형태로 푸는 것에 익숙해지도록 꾸준히 문제를 풀어야겠다💪🏻