프로그래머스

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

programmers.co.kr

📄 문제

정수 배열 arr과 delete_list가 있습니다. arr의 원소 중 delete_list의 원소를 모두 삭제하고 남은 원소들은 기존의 arr에 있던 순서를 유지한 배열을 return 하는 solution 함수를 작성해 주세요.

 

📝 풀이

#include <string>
#include <vector>
#include <iterator>

using namespace std;

vector<int> solution(vector<int> arr, vector<int> delete_list) {
    
    for (int i = 0; i < delete_list.size(); ++i) {
            for (vector<int>::iterator it = arr.begin(); it != arr.end(); ) {
                if (*it == delete_list[i]) {
                    it = arr.erase(it); // 요소가 같다면 제거
                } else {
                    ++it; // 요소가 같지 않다면, 다음 요소로 이동
                }
            }
        }
    
    return arr;
}
  • iterator을 이용하여 문제를 해결합니다.
bonnate