https://school.programmers.co.kr/learn/courses/30/lessons/181880
정답
class Solution {
public int solution(int[] num_list) {
int answer = 0;
for(int n : num_list) {
answer += makeOne(n);
}
return answer;
}
public int makeOne(int n)
{
int count = 0;
while(n!=1)
{
if(n%2 == 0)
n /=2;
else
n = (n-1)/2;
count++;
}
return count;
}
}
다른 사람의 풀이
1)
class Solution {
public int solution(int[] num_list) {
int answer = 0;
for(int i = 0;num_list.length>i;i++){
while(num_list[i]!=1){
num_list[i]/=2;
answer++;
}
}
return answer;
}
}
2)
class Solution {
public int solution(int[] num_list) {
int answer = 0;
for(int i = 0; i < num_list.length; i++){
int n = num_list[i];
while(n != 1){
if(n % 2 == 0) {
n /= 2;
answer++;
}
else {
n = (n-1)/2;
answer++;
}
}
}
return answer;
}
}
'Java > 프로그래머스' 카테고리의 다른 글
[JAVA] 프로그래머스 - 원하는 문자열 찾기 (0) | 2024.04.06 |
---|---|
[JAVA] 프로그래머스 - 길이에 따른 연산 (0) | 2024.04.06 |
[JAVA] 프로그래머스 - 조건에 맞게 수열 변환하기 2 (0) | 2024.04.06 |
[JAVA] 프로그래머스 - 조건에 맞게 수열 변환하기 1 (0) | 2024.04.06 |
[JAVA] 프로그래머스 - 수열과 구간 쿼리 1 (1) | 2024.04.05 |