Back to all posts
로또의 최고 순위와 최저 순위
Written by ppotatoG & Posted on January 8th, 2022
처음 제출한 답
두달전에 푼건데 설명하려니까 진짜 모르겠다
왜 저렇게 풀었던거지..?...??
function solution(a, s) {function solution(lottos, win_nums) {lottos.sort((a, b) => a - b);win_nums.sort((a, b) => a - b);let arr = [];for(let i = 0; i < lottos.length; i++){for(let k = 0; k < lottos.length; k++){if(lottos[i] === 0) {arr[i] = 0;}else if(lottos[i] === win_nums[k]) {arr[i] = true;}}}const result = new Array(6).fill(0).map((val, idx) => val = idx + 1).reverse();let same = arr.filter((val) => val === true).length;let blank = arr.filter((val) => val === 0).length;return [result[same + blank === 0 ? 0 : same + blank - 1], result[same === 0 ? 0 : same - 1]]}
최근 보충한 내용
rank
에서 6이 두번 있는 이유는 0개, 1개 맞으면 6등이니까!
0개 맞으면 6등, 1개 맞으면 6등, 6개 맞으면 1등 을 배열로 변경!
includes를 사용해 lottos
, win_nums
중 같은 값의 길이를 담은 변수 same
lottos
중 값이 0인 값들의 길이를 담은 변수 zero
최고점은 same + zero
, 최저점은 same
function solution(lottos, win_nums) {const rank = [6, 6, 5, 4, 3, 2, 1];const same = lottos.filter(val => win_nums.includes(val)).length;const zero = lottos.filter(val => !val).length;return [rank[same + zero], rank[same]];}