문제
내가 작성한 정답
class Solution {
public int solution(int[] arr) {
int answer = 0;
while (true){
boolean b = false;
for(int i =0; i<arr.length; i++){
int a = arr[i];
if(a>=50 && a%2==0) {
arr[i] /= 2;
b = true;
}
else if (a<50 && a%2==1) {
arr[i] = a * 2 + 1;
b = true;
}
}
if(!b) break;
answer++;
}
return answer;
}
}다른 사람들의 정답
import java.util.Arrays;
class Solution {
public int solution(int[] arr) {
return Arrays.stream(arr).map(i -> cntAction(i)).max().getAsInt();
}
private int cntAction(int n) {
int cnt = 0;
boolean flag = true;
while (flag) {
if (n % 2 == 0 && 50 <= n) {
n /= 2;
cnt++;
} else if (n % 2 == 1 && n < 50) {
n *= 2;
n += 1;
cnt++;
} else {
flag = false;
}
}
return cnt;
}
}Share article