Skip to content

[구현] 프로그래머스#42889 - 실패율 #11

@ye-yo

Description

@ye-yo

⚠️ 나의 풀이

  • failUser : 각 stage별로 해당 스테이지에 머무르고 있는 사람 count;
  for (let i = 0; i < stages.length; i++) {
    failUser[stages[i] - 1]++;
  }
  • 반복문 돌면서 아래와 같이 계산
  totalUser[N] = failUser[N];
  for (let i = answer.length - 1; i >= 0; i--) {
    totalUser[i] = failUser[i] + (i + 1 <= N ? totalUser[i + 1] : 0);
    answer[i] = failUser[i] == 0 ? 0 : failUser[i] / totalUser[i];
  }

❗️ 오답 원인 분석

  • 실패율을 내림차순으로 정렬해서 스테이지를 전달해주는 것을
    c++이었으면 pair를 사용했겠지만 javascript에서는 어떻게 구현할지 생각이 떠오르지 않음.

🔑 풀이 핵심

  • stage정보와 실패율 모두 저장하기 = arr.push[스테이지, 실패율])
  • sort는 두번째 원소 기준 정렬하고 answer.sort((a, b) => b[1] - a[1])
  • 정렬한 배열은 첫번째 원소만 저장하도록 변경 answer.map((a) => a[0])
  • 그리고 문제 풀이 방식을 반대로 생각해보기
  1. i번째 위치에서 실패한 사람 count
  2. 실패율 = 실패한사람수 / 총인원 // 이 위치까지 도전한 총 인원 = 초기값은 전체 인원 수
  3. 총인원 -= 실패한 사람 수

Metadata

Metadata

Assignees

Labels

풀이미흡제대로 풀이하지 못함.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions