두 개의 배열(base, sample)을 입력받아 sample이 base의 부분집합인지 여부를 리턴해야 합니다.
base, sample 내에 중복되는 요소는 없다고 가정합니다.
let base = [1, 2, 3, 4, 5];
let sample = [1, 3];
let output = isSubsetOf(base, sample);
console.log(output); // --> true
sample = [6, 7];
output = isSubsetOf(base, sample);
console.log(output); // --> false
base = [10, 99, 123, 7];
sample = [11, 100, 99, 123];
output = isSubsetOf(base, sample);
console.log(output); // --> false
function solution (base, sample) {
base.sort((a, b) => a - b);
sample.sort((a, b) => a - b);
const checkSubset = (origin, compare, from) => {
for(let i = from; i < compare.length; i++){
if(origin === compare[i]){
return i;
} else if(origin < compare[i]){
return -1;
}
}
return -1;
}
let flag = 0;
for(let i = 0; i < sample.length; i++){
flag = checkSubset(sample[i], base, flag);
if(flag === -1){
return false;
}
}
return true;
}
기존에 한 번 풀었던 문제다. 비교 공식이 있기 때문에 활용하면 좋은 문제다.