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
- 우테캠 회고록
- 프로그래머스 데브코스
- useRef 지역 변수
- react 프로젝트 리팩토링
- KDT 프로그래머스
- 머쓱이
- 프로그래머스 K_Digital Training 프론트엔드
- 모던 자바스크립트 TIL
- 인프런 자바스크립트 알고리즘 문제풀이
- 프로그래머스 K_Digital Training
- frontend roadmap study
- 백준 js
- 백준 node.js
- 투포인터알고리즘 js
- 프로그래머스 데브코스 프론트엔드
- Vue3
- useEffect return
- 리팩토링 회고
- 모던 javascript Deep Dive
- 프로그래머스 데브코스 프론트엔드 TIL
- 개발자 특강
- Frontend Roadmap
- 모던 자바스크립트 Deep Dive
- KDT 프로그래머스 데브코스 프론트엔드
- TypeScript 문법 소개
- 모던 자바스크립트 딥다이브
- 모던 자바스크립트 Deep Dive TIL
- react customHook 예시
- Vue3 Router
- K_Digital Training
Archives
- Today
- Total
프론트엔드 개발자의 기록 공간
[프로그래머스 JavaScript] 로또의 최고 순위와 최저 순위 본문
프로그래머스 Level1 로또의 최고 순위와 최저 순위 -> 2021Dev-Matching: 웹 백엔드 문제
문제 설명 : 주어진 입력을 통해 일치하는 번호를 찾고 등수를 출력하면 되는 문제이다.
데브 매치에 나왔던 문제인만큼 대표적인 유형인 것 같다.
저는 문제접근을 다음과 같이 구상했습니다.
1. 민호의 입력번호와 당첨번호가 일치하는 개수 구하기
2. 민호의 입력번호중 0의 개수 구하기
3. 최고순위 = 1번+2번, 최저순위 = 1번이 된다.
function solution(lottos, win_nums) {
var answer = [];
//순위
var result = [6,6,5,4,3,2,1];
//일치하는 복권 번호의 수
let cnt =0;
//민호의 입력번호와 당첨번호가 일치하는 것들의 갯수
//splice쓴 이유는 민호의 입력번호에서 중복번호가 있을 수 있기 때문
for(let x of lottos){
if(win_nums.indexOf(x) !== -1){
win_nums.splice(win_nums.indexOf(x),1);
cnt += 1;
}
}
//0의 개수
let max = lottos.filter((el) => el===0);
//최고 순위 = 겹치는 수 + 0의 개수
answer.push(result[cnt+max.length])
//최저 순위
answer.push(result[cnt])
return answer;
}
코드 설명 : 입력번호와 당첨번호 일치하는 개수를 구하는 반복문에서
splice를 사용한 이유는 민호의 입력번호가 동일한게 여러개([5,42,42,42,3]) 당첨 번호([5,42,10,5])일
경우가 있기 때문에 사용해주었다.
그외에는 위에 설명한 로직대로 작성했다.
728x90
'알고리즘_JS > 프로그래머스_Level1' 카테고리의 다른 글
[프로그래머스 JavaScript] 2016년 (0) | 2021.06.09 |
---|---|
[프로그래머스 JavaScript] 1차 비밀지도 (0) | 2021.06.09 |
[프로그래머스 JavaScript] 예산 (0) | 2021.06.08 |
[프로그래머스 JavaScript] 실패율 (0) | 2021.06.07 |
[프로그래머스 JavaScript] 음양 더하기 (0) | 2021.06.07 |
Comments