코딩테스트 연습 - 로또의 최고 순위와 최저 순위 | 프로그래머스 스쿨 (programmers.co.kr)
문제
로또 번호 중 몇 개 번호를 알아볼 수 없을 때, (그 번호는 0으로 표시) 이 번호로 가능한 최고 순위와 최저 순위 구하기
로또 순위표
순위 | 조건 |
1 | 6개 번호가 모두 일치 |
2 | 5개 번호가 일치 |
3 | 4개 번호가 일치 |
4 | 3개 번호가 일치 |
5 | 2개 번호가 일치 |
6(낙첨) | 그 외 |
예제
lottos = [44, 1, 0, 0, 31, 25], win_nums = [31, 10, 45, 1, 6, 19] 이면,
최저 순위는 5 (2개 번호 일치), 최고 순위는 3 (4개 번호 일치)
풀이
function solution(lottos, win_nums) {
// win_nums에 포함된 lottos의 숫자 개수
let exists = 0
// lottos에서 0의 개수
let zero = 0
// check라는 빈 배열 생성 후, win_nums의 요소가 존재하는지 여부 표시
const check = new Array(46)
win_nums.forEach((number) => {
check[number] = 1
})
// zero와 exists 값 채워주기
lottos.forEach((number) => {
if (number === 0) {
zero += 1
} else if (check[number] === 1) {
exists += 1
}
})
// 최고 순위와 최저 순위 정의
let lowRank = 7 - exists
let highRank = lowRank - zero
if (exists === 0) {
lowRank -= 1
if (zero === 0) {
highRank -= 1
}
}
return [highRank, lowRank]
}
'문제 풀이 > Javascript' 카테고리의 다른 글
[Programmers] [Javascript] 성격 유형 검사하기 (0) | 2022.09.14 |
---|