function solution(arr) {
var answer = 0;
while(true){
let count = 0
for(let i=0; i<arr.length; i++) {
if(arr[i]>=50 && arr[i]%2==0) {
arr[i] = arr[i]/2; count++;
} else if(arr[i]<50 && arr[i]%2==1) {
arr[i] = arr[i]*2 +1; count++;
}
else
continue
}
if(count == 0)
break;
answer++
}
return answer;
}
먼저, while문
을 이용하여 배열 인덱스의 변화가 없을 때까지 계산을 한다. 인덱스 값이 변경되면 count
에 1을 더한다. arr
의 반복 횟수도 알아야 하므로 answer
도 1을 더해준다.
만약 count
가 0이라면 배열 인덱스의 변화가 없다는 뜻이므로 while문
을 종료하고, answer 값
을 리턴한다.
😎
코드가 너무 직관적이고 지저분한 느낌이 들어서... 나중에 리팩토링을 해야할 것 같다!