728x90
코드 힌트
이 문제에서는 주어진 배열 arr의 길이보다 크거나 같은 가장 작은 2의 제곱수 크기의 배열을 만들어야 합니다. 그런 다음, 새로 만든 배열에 기존 배열의 값을 복사합니다.
- 2의 제곱수 찾기:
- 배열의 길이보다 크거나 같은 가장 작은 2의 제곱수를 찾기 위해 반복문을 사용합니다. 이 과정에서 n을 반복적으로 2배씩 증가시켜 나갑니다.
- 예를 들어, 배열의 길이가 5라면, 크거나 같은 2의 제곱수는 8입니다 (2^3 = 8).
- 새로운 배열 생성 및 값 복사:
- 2의 제곱수 크기의 배열을 생성한 후, 기존 배열의 값을 새 배열에 차례대로 복사합니다. 만약 기존 배열의 길이가 2의 제곱수보다 작다면, 나머지 부분은 0으로 채워집니다.
정답은 더보기 클릭
더보기
class Solution {
public int[] solution(int[] arr) {
// 1. 초기 n 값 설정: 배열의 길이보다 크거나 같은 가장 작은 2의 제곱수를 찾기 위한 변수입니다.
int n = 1;
// 2. 배열의 길이보다 크거나 같은 가장 작은 2의 제곱수를 찾는 과정입니다.
// 배열의 길이보다 작은 동안 n을 2배씩 늘려나갑니다.
while (arr.length > n) {
n *= 2;
}
// 3. 결과 배열 생성: 크기가 n인 배열을 생성합니다. 초기값은 모두 0입니다.
int[] result = new int[n];
// 4. 기존 배열의 값을 결과 배열에 복사합니다.
// arr의 값을 차례로 result에 복사합니다.
for (int i = 0; i < arr.length; i++) {
result[i] = arr[i];
}
// 5. 결과 배열을 반환합니다. 결과 배열은 크기가 2의 제곱수이며, 기존 배열의 값을 그대로 포함합니다.
return result;
}
}
728x90
'프로그래머스(Java) > Level 0' 카테고리의 다른 글
[프로그래머스] 문자열 묶기 (0) | 2024.08.13 |
---|---|
[프로그래머스] 세 개의 구분자 (0) | 2024.08.13 |
[프로그래머스] 문자열이 몇 번 등장하는지 세기 (0) | 2024.08.13 |
[프로그래머스] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 (0) | 2024.08.13 |
[프로그래머스] 1로 만들기 (0) | 2024.08.12 |