728x90
(풀기 전에 알아야 할 것)
🔹 while : 반복되게 설정
👌 num 이 짝수라면 2로 나누고 홀수라면 3을 곱하고 1을 더해라
if(num % 2 == 0){
num = num/2 // num /= 2 이렇게 표현할 수도 있다.
}else{
num = (num * 3) + 1
}
👌 while 반복함수를 사용하는데, 이 조건을 사용해서 1이 안되면 반복하는 것
while(num != 1){
if(num % 2 == 0){
num = num/2
}else{
num = (num * 3) + 1
} // 여기까지가 짝수일때, 홀수일때 조건문
answer += 1;
}
while 문 안에 들어간 수가 짝수, 홀수를 판별해서 식을 한 번 돌고 나올 때마다, answer +=1로 while 문을 반복하는 횟수를 카운팅 해주는 것이다.
여기서 answer += 1 이거는, 몇 번 반복했는지에 대한 횟수이다.
👌 횟수가 500번이 넘으면, 1을 반환해라
if(answer >= 500){
return -1 // 500번을 넘기면 -1 반환하고
}else{
return answer //500번 미만이면 횟수 반환하기
}
✅ 최종 코드
function solution(num) { var answer = 0; while(num != 1){ if(num % 2 == 0){ num = num/2 }else{ num = (num * 3) + 1 } answer += 1; } if(answer >= 500){ return -1 }else{ return answer } } |
728x90
'알고리즘 스터디 > [프로그래머스] 연습문제' 카테고리의 다른 글
[알고리즘] 하샤드 수 문제풀기(자바스크립트 javascript) (0) | 2022.07.19 |
---|---|
[알고리즘] 제일 작은 수 제거하기 문제풀이(자바스크립트 javascript) (0) | 2022.07.19 |
[알고리즘] 정수 제곱근 판별 문제풀이(자바스크립트 javascript) (0) | 2022.07.19 |
[알고리즘] 정수 내림차순으로 배치하기 문제풀이(자바스크립트 javascript) (0) | 2022.07.19 |
[알고리즘] 자연수 뒤집어 배열로 만들기 문제풀이(자바스크립트 javascript) (0) | 2022.07.19 |