https://school.programmers.co.kr/learn/courses/30/lessons/181880
초반에 문제를 제대로 이해하지 않아서 각 요소를 나누는 최대 횟수를 구하면 되는줄 알았다(총 배열을 몇 번 나눠야 모든 요소가 1이 되는지를 구하는줄 알았음). 하지만, 그게 아니라 나눗셈이 발생한 횟수만 구해주면 되므로 answer값만 증가시키면 되는 문제이다.
class Solution {
public int solution(int[] num_list) {
int answer = 0;
//현재 원소를 기준으로 계속 나눠주면 됨 -> 전체 나누는 횟수를 구하기 때문에 answer 초기화 필요 X
for(int i=0; i<num_list.length; i++){
while(num_list[i] != 1){
if(num_list[i] == 1){
break;
}
if(num_list[i]%2 == 0){
answer++;
num_list[i] = num_list[i]/2;
}else{
answer++;
num_list[i] = (num_list[i]-1)/2;
}
}
}
return answer;
}
}