class Solution {
public long[] solution(long[] numbers) {
long[] answer = new long[numbers.length];
for(int i=0; i<numbers.length; i++) {
if(numbers[i]%2==0) { answer[i] = numbers[i]+1; }
else {
String[] arr = Long.toBinaryString(numbers[i]).split("");
String s = "";
int k = -1;
for(int j=0; j<arr.length; j++) {
if(arr[j].equals("0")) { k = j; }
}
if(k==-1) {
s = "10";
for(int j=0; j<arr.length-1; j++) { s += "1"; }
} else {
arr[k] = "1"; arr[k+1] = "0";
for(int j=0; j<arr.length; j++) { s += arr[j]; }
}
answer[i] = Long.valueOf(s, 2);
}
}
return answer;
}
}
'Problem Solving > Programmers' 카테고리의 다른 글
[Level 2] 영어 끝말잇기 (0) | 2022.04.06 |
---|---|
[Level 2] 삼각 달팽이 (0) | 2022.04.06 |
[Level 2] 피로도 (0) | 2022.04.06 |
[Level 2] 큰 수 만들기 (0) | 2022.04.06 |
[Level 2] 카펫 (0) | 2022.04.06 |