본문 바로가기
c++/프로그래머스

[프로그래머스] 빈 배열에 추가, 삭제하기(c++)

by ilp 2023. 12. 25.
반응형

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr



#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<int> arr, vector<bool> flag) {
    vector<int> answer;
    for(int i=0;i<flag.size();i++){
        if(flag[i]==true){
            for(int j=0;j<arr[i]*2;j++){
                answer.push_back(arr[i]);
            }
        }
        else if(flag[i]==false){
            for(int j=0;j<arr[i];j++){
                answer.pop_back();
            }
        }
    }
    return answer;
}

빈 배열 answer을 만들어준다.

flag크기만큼 for문을 돌린다.(i)

flag[i]가 true 인지 false인지 판단한다.

true이면

arr[i]*2번 for문을 ㄷ로리고

answer에 arr[i]를 넣어준다.(push_back()을 사용했다.)

false이면

arr[i]만큼 for문을 돌리고

ansewr에 맨 뒤에 값을 없엔다.

(pop_back()을 사용하면 맨뒤에 값을 삭제할 수 있따.)


반응형