알고리즘문제
프로그래머스 > 로또의 최고 순위와 최저 순위
단점이없어지고싶은개발자
2022. 10. 9. 14:02
반응형
1. lottos배열 안에는 친구의 장난으로 로또 번호가 아닌 0이 들어가 있고, 경우의 수를 따져서 맞췄다고 가정한다.
2. 그래서 lottos에서 win_nums배열에 당첨된 숫자가 있는지 + 0이 들어가있는 숫자만큼 더해 몇 등인지 가정한다.
3. 그리고 0이 들어가 있는 나의 로또가 또한 안 맞았다고 가정을 해서 최대 등수, 최저 등수를 반환해야한다.
function solution(lottos, win_nums) {
let max = 0;
let min = 0;
lottos.forEach((lotto) => {
if (lotto === 0) {
//0이 있다면 맞췄다고 가정을 해 max에 1씩 더해준다.
max++;
}
if (win_nums.includes(lotto)) {
//내 숫자가 로또 당첨번호에 정말 포함되어 있다면 max에 1씩 더해주고,
//순수하게 0이 아닌 내 숫자중에 더한 값만 min 또한 1씩 더해준다.
max++;
min++;
}
});
return [winLotto(max), winLotto(min)];
function winLotto(lotto) {
//switch문을 통해 맞춰진 숫자를 바탕으로 몇등인지 반환하는 함수
switch (lotto) {
case 6:
return 1;
case 5:
return 2;
case 4:
return 3;
case 3:
return 4;
case 2:
return 5;
default:
return 6;
}
}
}
반응형