Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Tags more
Archives
Today
Total
관리 메뉴

luke

[프로그래머스] - 열의 길이를 2의 거듭제곱으로 만들기 (Java/자바) 본문

알고리즘문제/프로그래머스(Java)

[프로그래머스] - 열의 길이를 2의 거듭제곱으로 만들기 (Java/자바)

luke-king 2026. 2. 9. 21:35

문제: https://school.programmers.co.kr/learn/courses/30/lessons/181857

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

 

 

 

 

 

 

 

 

문제.


 

 

 

 

 

 

 

 

풀이.


import java.util.*;

class Solution {
    public int[] solution(int[] arr) {
        int[] answer = {};
        int temp = 1;
        
        while(temp < arr.length){
            temp *= 2;
        }
        answer = Arrays.copyOf(arr, temp);
        
        return answer;
    }
}

이번 문제는 프로그래머스 "열의 길이를 2의 거듭제곱으로 만들기" 문제다.

문제 접근은 주어진 arr[]의 길이가 2의 거듭제곱이 되도록 배열 내에 0을 추가해 길이를 늘여 주는 문제다.

그럼 바로 풀이 해보겠다.

 

1. temp 변수를 1로 초기화한다.
→ 배열 길이보다 크거나 같은 가장 작은 2의 거듭제곱 값을 찾기 위해 사용한다.

 

2. while(temp < arr.length) 조건에서 temp *= 2를 반복하며 arr.length 이상이 될 때까지 2배씩 증가시킨다.

 

3. Arrays.copyOf(arr, temp)를 사용해 기존 배열을 temp 길이만큼 복사하고 부족한 부분은 자동으로 0으로 채운 새로운 배열을 만든다.

(여기서 copyOf()는 (배열, 새 길이) (6, 8) 입력이 되면 7,8 즉 2개의 값이 0으로 들어가게 된다.)