프로그래머스 / Level1 , 2019 KAKAO BLIND RECRUITMENT , 실패율 자바스크립트 , JS
Check Point ! ( 해당사항 ✓체크 )
1. 막힘 없이 수월하게 풀린 문제인가?
2. 1시간이내로 풀렸던 문제인가?
3. 1시간 이상 or 며칠을 두고 풀어봤더니 풀린 문제인가?
4. 시간을 써도 도무지 풀 수 없는 문제인가?
5. 솔루션을 찾아봤는가?
-------------------------------------------------------------------------------------------
난이도 체감
1. 최상
2. 상
3. 중
4. 하
<이해도>
1. 완벽히 이해
2. 다소 헷갈리는 부분들이 있음
3. 이해 못함
<덧붙일 말>
최대한 for 문을 안써봤다. 크게 어려운 부분은 없지만 카카오 문제라 그런지 level 1 난이도도 이전 문제들 처럼 마냥 단순하지는 않음.
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/42889
정답
function solution(N, stages) {
var answer = [];
let level=[...new Array(N+1)].fill(0); // 실패율 계산 위한 배열
let arr=[...new Array(N)].map(() => []); // 스테이지랑 실패율 저장
let cnt = stages.length // 전체 참여자 수
stages.sort((a,b) => a-b)
stages.map((v)=>level[v]+=1)
// 실패율 계산
for (let j=1; j<=N; j++) {
arr[j-1].push(level[j]/cnt, j)
cnt-=level[j]
}
// 1. 실패율 순 정렬 2. 순번 순 정렬
arr.sort((a,b) => {
if (a[0]===b[0]) return a[1]-b[1]
return b[0]-a[0]
})
// 정답 추출
arr.map((v) => answer.push(v[1]))
return answer;
}
반응형
'알고리즘 공부 > 프로그래머스 - 자바스크립트' 카테고리의 다른 글
프로그래머스 / Level1 , 2020 카카오 인턴십 , 키패드 누르기 자바스크립트 , JS (0) | 2022.09.17 |
---|---|
프로그래머스 / Level1 , 2018 KAKAO BLIND RECRUITMENT , [1차] 다트 게임 자바스크립트 , JS (0) | 2022.09.15 |
프로그래머스 / Level1 , 2021 카카오 채용연계형 인턴십 , 숫자 문자열과 영단어 자바스크립트 , JS (0) | 2022.09.13 |
프로그래머스 / Level2 , 연습문제 , 문자열 내 마음대로 정렬하기 자바스크립트 , JS (0) | 2022.09.13 |
프로그래머스 / Level2 , 연습문제 , 피보나치 수 자바스크립트 , JS (0) | 2022.09.12 |