1로 만들기 JAVA
문제설명 : 정수가 있을 때, 짝수라면 반으로 나누고, 홀수라면 1을 뺀 뒤 반으로 나누면, 마지막엔 1이 됩니다. 예를 들어 10이 있다면 다음과 같은 과정으로 1이 됩니다.
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/181880
JAVA 코드 :
class Solution {
public int solution(int[] num_list) {
int answer = 0;
for(int num : num_list){
answer += powpow(num);
//System.out.println("answer : "+answer);
}
return answer;
}
public int powpow(int num){
int exponentiation = 0;
while(Math.pow(2, exponentiation) <= num ){
exponentiation ++;
}
return exponentiation - 1;
}
}
num_list의 각 정수들이 2의 제곱으로 나누었을 때, 딱 나누어 떨어지지 않으면 1개 적으면 된다... 는 생각으로 이렇게 풀어봄!!! answer에서는 누적해주고!!
728x90
300x250