2개의 배열을 입력받아 부분집합 확인 Javascript

cptkuk91·2022년 8월 18일
1

Algorithm

목록 보기
66/161
post-custom-banner

문제

두 개의 배열(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;
}

기존에 한 번 풀었던 문제다. 비교 공식이 있기 때문에 활용하면 좋은 문제다.

profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)
post-custom-banner

0개의 댓글