[프로그래머스 / C++] 배열의 원소 삭제하기

YH·2023년 10월 28일
0

문제

배열의 원소 삭제하기 : 문제 링크


문제 분석

  • 정수 배열 arr과 delete_list가 있다. arr의 원소 중 delete_list의 원소를 모두 삭제하고 남은 원소들은 기존의 arr에 있던 순서를 유지한 배열을 return
  • delete_list 내에 arr의 원소가 존재하는지 확인하기 위해 find() 함수를 사용하므로 algorithm 헤더를 include
  • for loop를 통해 arr의 첫번째부터 마지막 원소까지 검사하고, if문과 find() 함수를 통해 delete_list내에 해당 원소가 존재하는지 확인. 원소가 존재하지 않다면, 즉 delete_list의 end()가 return 되면 그 원소를 answer에 저장. 최종적으로 저장된 answer을 return

1. vector내에 해당 원소가 존재하는지 확인
=> find(v.begin(), v.end(), 찾을 대상)
1) return 값이 v.end()인 경우 => 해당 원소가 존재하지 않음
2) return 값이 v.end()가 아닌 경우 => 해당 원소가 존재함
2. vector내에서 해당 원소가 위치하는 인덱스 찾기
=> find(v.begin(), v.end(), 찾을 대상) - v.begin


풀이

#include <vector>
#include <algorithm>

using namespace std;

vector<int> solution(vector<int> arr, vector<int> delete_list) {
    vector<int> answer;
    
    for(int i = 0; i < arr.size(); ++i) {
        if(find(delete_list.begin(), delete_list.end(), arr[i]) == delete_list.end()) answer.push_back(arr[i]);
    }
    return answer;
}
profile
Keep Recycling Your Dreams

0개의 댓글