👉 https://programmers.co.kr/learn/courses/30/lessons/77484
문제를 읽고 첫번째, 나의 로또와 당첨번호와 비교 하여 맞은 당첨숫자 갯수를 파악하야겠다. 라고 생각했다.
두번째, 0의 갯수를 파악하였다.
그래서 가장 높은 등수에는 0이 모두 당첨 됬을때, 가장 낮은 등수는 0이 모두 당첨되지 않았을때로 가정하였다.
당첨 숫자 갯수와 순위를 연결하는것에 대해 고민을 하다, 등수와 당첨 숫자를 더하면 모두 7이라는 것으로 삼항 조건 연산자를 활용하여 문제를 해결하였다.
function solution(lottos, win_nums) {
let answer = [];
const zero = lottos.filter((val) => val === 0).length;
const correct = lottos.filter((val) => win_nums.includes(val));
const maxRank = 7 - correct - zero >= 6 ? 6 : 7 - correct - zero;
const minRank = 7 - correct >= 6 ? 6 : 7 - correct;
answer.push(maxRank, minRank)
return answer;
}
삼항 조건 연산자의 위대함을 다시 한번 느꼈다!
(저거 아니었으면, if elseif 파티 했을듯)
filter 사용하면 참으로 편하게 코드를 작성할 수 있다.
벌써 5번째 포스트이다... 혹시 나 작심삼일로 끝날까 걱정했지만, 그래도 꾸준히 해서 실력을 키우즈아!