나의 풀이
원래 풀고있던 풀이는 객체에 전체 스테이지의 개수를 key 값으로 주고, 실패율을 value 값으로 줘서 값을 sort로 정렬하는 방식으로 풀고 싶었으나, 입력값을 잘못줬던 모양인지 계속 정렬이 안되서 다른 블로그를 찾아봤다.
베스트 풀이
function solution(N, stages) {
const result = [];
for(let i=1; i<=N; i++){
const reach = stages.filter((x) => x >= i).length;
const curr = stages.filter((x) => x === i).length;
result.push([i, curr/reach]);
}
result.sort((a,b) => b[1] - a[1]);
return result.map((x) => x[0]);
}
베스트 풀이를 보니, 분모도 filter를 이용해서 만들었고, 2중 배열로 만든 다음 정렬 후 map으로 return 값을 만들어준 모습이 인상 깊었다. 이중 배열로 나타낼 생각을 전혀 못하고 있었는데 정말 알고리즘은 너무 어렵다 ㅠㅠ
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 3진법 뒤집기 (0) | 2022.08.02 |
---|---|
[프로그래머스] 약수의 개수와 덧셈 (0) | 2022.07.29 |
[프로그래머스] 모의고사 (0) | 2022.07.29 |
[프로그래머스] 폰켓몬 (0) | 2022.07.28 |
[프로그래머스] 소수 만들기 (0) | 2022.07.28 |