본문 바로가기
👩‍💻 Programming/Coding Test 문제 풀이

[프로그래머스] level 1 실패율(자바스크립트)

by codingBear 2023. 1. 27.
728x90
반응형
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


👨‍💻 문제


정답 코드


문제 풀이

 문제를 풀 때 필요한 값은 분모가 될 '도전자 수', 분자가 될 '아직 클리어 못 한 사람 수', 마지막으로 둘을 나눈 '실패율'이다. 도전자 수는 처음에는 stages의 길이를 대입해뒀다가 for 반복문을 돌면서 매 작업마다 아직 클리어 못 한 사람 수를 누적해서 뺀다. N이 5이고, stages가 [2, 1, 2, 6, 2, 4, 3, 3]이라면 아직 클리어 못 한 사람 수는 다음과 같을 것이다.

[1, 2, 2, 2, 3, 3, 4, 6]

총 스테이지 1 ~ 5

1 스테이지: 1명
2 스테이지: 3명
3 스테이지: 2명
4 스테이지: 1명
5 스테이지: 0명

※ 6(N + 1)은 막판까지 클리어한 사람이므로 계산에서 제외

아직 클리어 못 한 사람 수는 filter 메서드를 활용하면 간단히 구할 수 있다. 스테이지는 1부터 5까지 있으므로 for 문으로 i를 1부터 5까지 출력하며 배열 stages에서 스테이지(i)와 일치하는 요소의 개수를 세면 된다.

 1 스테이지를 클리어하지 못한 1명은 1 스테이지를 넘어가지 못했으므로 다음 계산에서는 제외해야 한다. 즉 2 스테이지를 깬 사람은 7명이기 때문에 1 스테이지를 못 깬 1명을 총 인원 수에서 빼고 계산해야 하는 것이다. 

 이 같은 계산을 반복하고 나서 실패율을 기준으로 정답 배열을 내림차순으로 정렬하면 된다.

728x90
반응형

댓글