https://school.programmers.co.kr/learn/courses/30/lessons/181844
정수 배열
arr
과delete_list
가 있습니다.arr
의 원소 중delete_list
의 원소를 모두 삭제하고 남은 원소들은 기존의arr
에 있던 순서를 유지한 배열을 return 하는 solution 함수를 작성해 주세요.
function solution(arr, delete_list) {
var answer = [];
let setA=new Set(arr)
let setB=new Set(delete_list)
Set.prototype.difference = function (set) {
return new Set([...this].filter(v => !set.has(v)));
};
return Array.from(setA.difference(setB));
}
console.log(solution([293, 1000, 395, 678, 94],[94, 777, 104, 1000, 1, 12]))
console.log(solution([110, 66, 439, 785, 1],[377, 823, 119, 43]))
function solution(arr, delete_list) {
var answer = [];
// arr 배열과 delete_list 배열은 Set 객체로 만들어 준다.
let setA=new Set(arr)
let setB=new Set(delete_list)
// Set객체에 difference 메서드를 만들어주어
Set.prototype.difference = function (set) {
// 여기서 [...this]는 setA를 배열로 만들어준 것이다.
// setA배열을 filter로 배열을 순회하여 setB에 특정 요소가 존재하지 않는 것들을
// 다시 Set객체로 만들어 준다. -> 굳이 Set 객체로 안 만들어도 된다.
return new Set([...this].filter(v => !set.has(v)));
};
// set객체 배열로 만들기
return Array.from(setA.difference(setB));
// set객체 배열로 만드는 다른 방법
//let result= setA.difference(setB);
// result.forEach(e=>answer.push(e))
// return answer;
}
console.log(solution([293, 1000, 395, 678, 94],[94, 777, 104, 1000, 1, 12]))
console.log(solution([110, 66, 439, 785, 1],[377, 823, 119, 43]))
function solution(arr, delete_list) {
var answer = [];
let setA=new Set(arr)
let setB=new Set(delete_list)
Set.prototype.difference=function(set){
// 여기서 this는 setA이다.
let result = new Set(this);
//setB를 순회하여
for(let x of set){
//setA에 setB의 요소를 제거해준다.
result.delete(x)
}
return result;
}
// set객체를 배열로 만들어 준다.
return [...setA.difference(setB)];
}
console.log(solution([293, 1000, 395, 678, 94],[94, 777, 104, 1000, 1, 12]))
console.log(solution([110, 66, 439, 785, 1],[377, 823, 119, 43]))
function solution(arr, delete_list) {
var answer = [];
let setA=new Set(arr)
let setB=new Set(delete_list)
Set.prototype.difference=function(set){
let result = new Set(this);
for(let x of set){
result.delete(x)
}
return result;
}
return [...setA.difference(setB)];
}
console.log(solution([293, 1000, 395, 678, 94],[94, 777, 104, 1000, 1, 12]))
console.log(solution([110, 66, 439, 785, 1],[377, 823, 119, 43]))