728x90
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
class Solution {
public int[] solution(int[] arr) {
List<Integer> ints = IntStream.of(arr).boxed().collect(Collectors.toList());
int size = arr.length;
int count = 0;
while (true) {
if (powerNum(size+count)) {
for (int i = 0; i < count; i++) {
ints.add(0);
}
return ints.stream().mapToInt(Integer::intValue).toArray();
}
count++;
}
}
public static boolean powerNum(int num) {
//num이 1인 경우는 무조건 true
if(num == 1){
return true;
}
//num이 홀수이면 무조건 false;
if(num % 2 != 0){
return false;
}
//2를 거듭제곱해서 비교할 수의 초기값은 2
int powerNum = 2;
//powerNum이 num보다 작을때까지만 while문 진행
while(powerNum < num){
powerNum *= 2;
}
//반복이 끝나면 powerNum과 num이 같은지 비교값을 리턴
return powerNum == num;
}
}
다른사람 풀이
arr = {1, 2, 3, 4, 5, 6}
arr.length | 6 | 6 | 6 | 6 |
length | 1 | 2 | 4 | 8 |
while | true | true | true | false |
return Arrays.copyOf(arr, 8);
: [1, 2, 3, 4, 5, 6, 0, 0]
arr = {58, 172, 746, 89}
arr.length | 4 | 4 | 4 |
length | 1 | 2 | 4 |
while(length < arr.length) | true | true | false |
return Arrays.copy(arr, 4);
: [58, 172, 746, 89]
import java.util.*;
class Solution {
public int[] solution(int[] arr) {
int length = 1;
while (length < arr.length) {
length *= 2;
}
return Arrays.copyOf(arr, length);
}
}
728x90
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
[알고리즘] 뒤에서 5등 위로 Java (0) | 2023.06.10 |
---|---|
[알고리즘] 뒤에서 5등까지 Java (0) | 2023.06.10 |
[알고리즘] 배열의 길이에 따라 다른 연산하기 Java (0) | 2023.06.06 |
[알고리즘] 배열 비교하기 Java (0) | 2023.06.05 |
[알고리즘] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 Java (0) | 2023.06.05 |