<내 풀이>
function solution(lottos, win_nums) {
var answer = [];
//lottos랑 win_nums랑 비교해서 같은게 몇개인지 갯수가 나와야하고 if n=3
//7-n=순위
var match = 0;
var zero = 0;
for(var i of lottos){
if(i===0) {
zero += 1
}
for(var j of win_nums){
if(i===j){
match += 1;
}
}
}
if(match===0){
answer = [7-(match+zero), 6];
if(zero===0){
answer = [6, 6]
}
} else {
answer = [7-(match+zero), 7-match]
}
return answer;
}
<가장 많은 좋아요를 받은 풀이>
function solution(lottos, win_nums) {
const rank = [6, 6, 5, 4, 3, 2, 1];
let minCount = lottos.filter(v => win_nums.includes(v)).length;
let zeroCount = lottos.filter(v => !v).length;
const maxCount = minCount + zeroCount;
return [rank[maxCount], rank[minCount]];
}
array.filter.length로 배열 내 특정 값 포함하는 갯수 구하는 데 사용할 수 있구나!
훨씬 깔끔해진다.
그리고 분기로 비교하는게 아닌 미리 rank를 정의하는 방법도 있네.
이렇게 하니 코드 가독성 확 산다.
'주5일알고리즘' 카테고리의 다른 글
Programmers: 크레인 인형뽑기 게임 with JS (0) | 2022.07.05 |
---|---|
Programmers: 키패드 누르기 with JS (0) | 2022.07.04 |
Programmers: 숫자 문자열과 영단어 with JS (0) | 2022.07.01 |
Programmers: 신규 아이디 추천 with JS (1) | 2022.06.30 |
Programmers: 신고 결과 받기 with JS (1) | 2022.06.27 |