로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다.
아래는 로또의 순위를 정하는 방식입니다.
[매개변수]
lottos : 민우가 구매한 로또 번호를 담은 배열
win_nums : 당첨번호를 담은 배열
return값 : 당첨가능한 최고순위,최저순위 [max,min]
[제한사항]
- lottos는 길이 6인 정수 배열입니다.
- lottos의 모든 원소는 0 이상 45 이하인 정수입니다.
- 0은 알아볼 수 없는 숫자를 의미합니다.
- 0을 제외한 다른 숫자들은 lottos에 2개 이상 담겨있지 않습니다.
- lottos의 원소들은 정렬되어 있지 않을 수도 있습니다.
- win_nums은 길이 6인 정수 배열입니다.
- win_nums의 모든 원소는 1 이상 45 이하인 정수입니다.
- win_nums에는 같은 숫자가 2개 이상 담겨있지 않습니다.
- win_nums의 원소들은 정렬되어 있지 않을 수도 있습니다.
[풀이]
function solution(lottos, win_nums) {
let 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]];
}
4.로또당첨번호와 맞는 번호의 개수의 길이 minCount를 얻는다
5. 0의 개수 : 0은 false로 간주되므로 !v로 0인값의 개수를 얻는다.
7. 최고순위를 가질때는 0의개수+minCount 이다.
[사용된 속성]
filter함수
var newArray = arr.filter(callbackFunction(element, index, array), thisArg);
매개변수 : callbackFunction , thisArg (callback을 생성할 때 this로 사용하는 값)
callbackFunction 의 매개변수 : element(요소값) , index(현재인덱스) , array(filter를 호출할 배열)
사용법1
list.filter(function(word){
return word.length>6;
})
사용법2
list.filter(word => word.length > 6);
사용법3
function filterCallbackFunction(word){
return word.length >6;
};
list.filter(filterCallbackFunction);
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 코딩테스트] - 키패드 누르기 (JavaScript) (0) | 2022.02.17 |
---|---|
[프로그래머스 코딩테스트] - 숫자 문자열과 영단어 (JavaScript) (0) | 2022.02.17 |
[프로그래머스 코딩테스트] - 신규 아이디 추천 (JavaScript) (0) | 2022.02.16 |
[프로그래머스 코딩테스트] - 신고 결과 받기 (JavaScript) (0) | 2022.02.12 |