문제 이름 : 로또의 최고 순위와 최저 순위
<<< 문제 내용 >>>
function solution(lottos, win_nums) {
let answer = [];
const correct = lottos.filter(i => win_nums.includes(i)).length;
const zeros = lottos.filter(i => i === 0).length;
const max = correct+zeros <2 ? 6 : 7-(correct+zeros);
const min = correct <2 ? 6 : 7-correct;
if(max>=7) max = 1;
answer = [max, min];
return answer;
}
* filter를 이용하면 중복을 찾는 과정에서 매우 유용하다.
* 다만, filter도 결국 for문을 돌기 때문에 O(n)이고, includes도 배열의 첫 원소부터 포함되어 있는지 검사하기 때문에 최악의 경우 O(n)이라 시간복잡도 면에서는 자유롭지 못하다.
도움이 되셨다면 공감 부탁드립니다.