Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 연결 리스트
- RT scheduling
- RxJS
- 타입스크립트
- 프론트엔드
- 브라우저
- alexnet
- 컨테이너
- 연결리스트
- 자바스크립트
- 자료구조
- APOLLO
- 코딩테스트
- C
- Machine Learning
- 릿코드
- 포인터
- 해시테이블
- pytorch
- vue3
- 스택
- 배열
- 프로세스
- 웹팩
- 알고리즘
- 이진탐색
- 프로그래머스
- 큐
- GraphQL
- cors
Archives
- Today
- Total
프린세스 다이어리
[프로그래머스] 로또의 최고 순위와 최저 순위 - 자바스크립트 본문
728x90
1. 접근 방법
(1) lottos에서 win_nums랑 일치하는 숫자의 갯수가 n이라면, 최소 정답은 n개, 최대 정답은 n + (0의 갯수)다.
(2) 0의 갯수 구하기
const numOfZeros = lottos.filter(lotto => lotto === 0).length;
(3) 최소, 최대 정답 수 구하기
let minCorrect = 0;
for (let i = 0; i < lottos.length; i++) {
if (win_nums.includes(lottos[i])) {
minCorrect++;
}
}
let maxCorrect = minCorrect + numOfZeros;
(4) 로또순위 계산 로직 작성
const setGrade = (corrects) => {
if (corrects >= 6) {
return 1;
} else if (corrects <= 1) {
return 6;
} else {
return 7 - corrects;
}
}
(5) 최대, 최소 일치 갯수로 로또순위 계산하여 정답 리턴
return [setGrade(maxCorrect), setGrade(minCorrect)];
2. 해답
const setGrade = (corrects) => {
if (corrects >= 6) {
return 1;
} else if (corrects <= 1) {
return 6;
} else {
return 7 - corrects;
}
}
function solution(lottos, win_nums) {
if (lottos.sort() == win_nums.sort()) return [1, 1];
// 1. lottos에서 0의 개수 세기.
const numOfZeros = lottos.filter(lotto => lotto === 0).length;
// 2. lottos 하나씩 돌면서 최소 결과 구하기
let minCorrect = 0;
for (let i = 0; i < lottos.length; i++) {
if (win_nums.includes(lottos[i])) {
minCorrect++;
}
}
// 3. 최대 결과 구하기
let maxCorrect = minCorrect + numOfZeros;
return [setGrade(maxCorrect), setGrade(minCorrect)];
}
소감: 난 이렇게까지 구구절절해야 하나ㅎ
728x90
'자료구조, 알고리즘' 카테고리의 다른 글
[LeetCode] Search in Rotated Sorted Array - 자바스크립트 풀이 (0) | 2021.11.28 |
---|---|
[LeetCode] Sqrt 문제 - 자바스크립트 풀이 (0) | 2021.11.27 |
[프로그래머스] 신규 아이디 추천 - 자바스크립트 풀이 (0) | 2021.11.26 |
[프로그래머스] 입국심사 문제 - 파이썬 풀이 (0) | 2021.11.25 |
[프로그래머스] 자바스크립트 베스트 앨범 문제 해설 (0) | 2021.11.17 |
Comments