두 개의 배열(base, sample)을 입력받아 sample이 base의 부분집합인지 여부를 리턴해야 합니다.
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
sample의 요소가 base의 요소와 일치하면 true를 리턴하고 같지 않은 요소가 있다면 if문을 벗어나 false를 리턴해야겠다고 생각했다. 그래서 이중반복문 + 조건문을 활용했다.
const isSubsetOf = function (base, sample) { // TODO: 여기에 코드를 작성합니다. for (let i = 0; i < sample.length; i++) { for (let j = 0; j < base.length; j++) { if (sample[i] === base[j]) { return true } } } return false }
현재 문제는 시간복잡도 O(MN)의 해결책인데
현재보다 개선된 O(NlogN)의 레퍼런스는 봐도 모르겠다
시간복잡도부터 공부하는게 좋을 것 같다.