프로그래머스코딩테스트연습풀이/C++

[프로그래머스/C++] 배열의 길이를 2의 거듭제곱으로 만들기

코코쵸마 2025. 2. 22. 16:48

문제

정수 배열 arr이 매개변수로 주어집니다. arr의 길이가 2의 정수 거듭제곱이 되도록 arr 뒤에 정수 0을 추가하려고 합니다. arr에 최소한의 개수로 0을 추가한 배열을 return 하는 solution 함수를 작성해 주세요.

 

솔루션

#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<int> arr) {
    vector<int> answer;
    
    int n = 1;
    
    while(1){
       if(n >= arr.size()){
           break;
       }
        n *= 2;
   }
    
    for(int i = 0; i < arr.size(); i++){
        answer.push_back(arr[i]);
    }
   
    for(int i = 1; i <= n-arr.size();i++){
        answer.push_back(0);
    }
    return answer;
}

 

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

 

프로그래머스

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

programmers.co.kr