⚠️ 아래 내용은 모두 개인적인 참고 / 기록을 위한 용도 입니다. 참고해주시고 편안하게 봐주세요 :) ⚠️
[Javascript] 프로그래머스 Level1 _ 콜라스 추측
👇🏻문제링크
👇🏻
시행착오
( + 코드를 작성하면서든 생각들.)
1.
처음에 while문으로 각각 짝수 / 홀수에서 answer++를 모두 적으려니 복잡해보여서
for문으로 무한반복을 돌리고 내부에서 num이 1이되면 멈추도록 구성했다!
카운트를 1부터 계속해서 짝홀과 상관없이 카운트를 세고 값을 리턴했다.
(그래서 answer를 반복문 외부에서 선언하고 for문 내에서 초기화했다!)
function solution(num) {
var answer;
for(answer=1; ;answer++){
(num%2)? num = num*3+1 : num/=2;
if(num == 1)
break;
}
return (answer>=500)? -1 : answer;
}
문제는 이러면 정확성 테스트에서 93.8점이나온다....ㅎㅎㅎㅎ
내가봐도 복잡해보여,,
2.
혹시나해서 do-while 루프를 돌렸는데
얘도 93.8점이 나온다.
function solution(num) {
var answer = 0;
do{
answer += 1;
(num%2)? num = num*3+1 : num/=2;
}while(num!=1);
return (answer>=500)? -1 : answer;
}
3.
마지막으로 for문의 조건문에 num!=1 을 넣었는데
바로 통과되서 좀 허무했다 ㅎㅎㅎㅎ ,,
function solution(num) {
var i;
for(i=0; num!=1; i++){
(num%2)? num = num*3+1 : num/=2;
if(i>500) {
i = -1;
break;
}
}
return i;
}
'Programmers > Level 1' 카테고리의 다른 글
[Javascript] 프로그래머스 : 행렬덧셈 (0) | 2021.07.01 |
---|---|
[Javascript] 프로그래머스 : 최대공약수와 최소공배수 (0) | 2021.06.30 |
[Javascript] 프로그래머스 : 자릿수 더하기 (0) | 2021.06.30 |
[Javascript] 프로그래머스 : 제일 작은 수 제거하기 (0) | 2021.06.28 |
[Javascript] 프로그래머스 : 수박수박수박수박수박수? (0) | 2021.06.28 |