프로그래머스 : 로또의 최고 순위와 최저 순위
https://programmers.co.kr/learn/courses/30/lessons/77484
문제풀이
이번 문제는 프로그래머스에서 상반기에 진행한 "2021 Dev-Matching: 웹 백엔드 개발자" 코딩 테스트에서 출제되었던 문제입니다.
순위나 맞춘 번호, 지워진 번호 등을 신경써야 될 것 같아 복잡해 보이지만 결과물은 의외로 간단하게 도출해 낼 수 있습니다.
- 지워진 숫자를 카운트합니다.
- 맞춘 숫자를 카운트합니다.
- 결과는 [최고등수, 최저등수] 의 형태로 반환하기 때문에,
지워진 숫자가 모두 맞으면 맞출 수 있는 "최고 등수", 모두 틀리면 "최저 등수"가 됩니다. - 정답은 [7-가장 많이 맞춘 수, 7-가장 적게 맞춘 수]
코드
function solution(lottos, win_nums) {
let cntZero = 0; // 지워진 숫자를 카운트하기 위한 변수
let cntAnswer = 0; // 맞춘 숫자를 카운트하기 위한 변수
lottos.forEach(elem => { if(elem === 0) cntZero++ })
// 지워진 숫자를 카운트
if(cntZero === 6) return [1,6];
// 모든 수가 지워져있다면 다른 검사 없이 바로 해답을 반환
else{
for(let i=0; i<lottos.length; i++)
for(let j=0; j<win_nums.length; j++)
if(lottos[i] === win_nums[j]) cntAnswer++;
// 맞춘 숫자를 카운트
if(cntAnswer < 2) cntAnswer = 1;
// 맞춘 숫자가 2개보다 적으면(0 or 1) 등수 계산을 위해서 1로 통일함
return [7-(cntZero+cntAnswer), 7-cntAnswer];
// 숫자 7에서 맞은 수의 개수를 빼면 등수가 나옴
}
}
리뷰
간단하기 때문에, 어려운 문제를 풀기 전 뇌를 예열해주기 위한 문제가 아니었나 싶습니다ㅎㅎ
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
멀쩡한 사각형 / js 풀이 (0) | 2021.06.29 |
---|---|
신규 아이디 추천 / js 풀이 (0) | 2021.06.23 |
폰켓몬 / js 풀이 (0) | 2021.06.22 |
K번째수 / js 풀이 (0) | 2021.06.21 |
[3차] 파일명 정렬 / js 풀이 (0) | 2021.04.23 |