두 개의 배열(base
, sample
)을 입력받아 sample
이 base
의 부분집합인지 여부를 리턴해야 합니다.
boolean
타입을 리턴해야 합니다.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
** Advanced
- 시간 복잡도를 개선하여, Advanced 테스트 케이스(`base`, `sample`의 길이가 70,000 이상)를 통과해 보세요.
그냥 요로코롬 풀면 되겠지 했지만, 따아악 1개만 실패하고 모두 통과했다.
Advanced는 총 3개의 테스트케이스가 나왔고, 그 중 1개가 실패한 것이다.
const isSubsetOf = function (base, sample) {
// TODO: 여기에 코드를 작성합니다.
for(let item of sample) {
if(base.includes(item)) {
return true;
}
return false;
}
};
위와 동일한 테스트 케이스의 문턱을 넘지 못했다.
다시 돌아보니 달라질게 없는 코드이긴 하다.
const isSubsetOf = function (base, sample) {
// TODO: 여기에 코드를 작성합니다.
set1 = new Set(base);
for(let item of sample) {
return set1.has(item);
}
};
...
아무래도 시간을 더 투자해서 뚫어봐야겠다 이 테스트 케이스의 문턱을..
라니스터 같은 녀석...
set : Set 객체는 자료형에 관계 없이 원시 값과 객체 참조 모두 유일한 값을 저장할 수 있다.
has(): 주어진 키를 가진 요소가 Map에 존재하는지를 반환한다. 불린값으로 출력