정수 배열 arr이 매개변수로 주어집니다. arr의 길이가 2의 정수 거듭제곱이 되도록 arr 뒤에 정수 0을 추가하려고 합니다. arr에 최소한의 개수로 0을 추가한 배열을 return 하는 solution 함수를 작성해 주세요.
여기서 핵심은 0을 얼마나 추가해야 하는지 계산하기 위해 targetLength *= 2;로 2의 거듭제곱이 될 때까지 2배로 증가시킨다는 점이다.
그 다음 원본 배열인 arr을 targetLength 길이까지 복사해 새로운 배열 int[] result를 만들고, arr의 길이부터 targetLength 전까지의 인덱스 값은 0을 저장해 주면 된다.
import java.util.Arrays;
class Solution {
public int[] solution(int[] arr) {
int length = arr.length;
int targetLength = 1;
while(targetLength < length) {
targetLength *= 2;
}
int[] result = Arrays.copyOf(arr, targetLength);
for (int i=length; i<targetLength;i++) {
result[i] = 0;
}
return result;
}
}
