티스토리 뷰
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | import java.util.Arrays; import java.util.Comparator; /* 1 <= N <= 500 (스테이지번호) 1 <= stages.length <= 200,000 (사람수) 1 <= stages.val <= N+1 (실패한 스테이지) N+1 은 마지막까지 클리어했다는 뜻 실패율이 높은순서로 정렬, 실패율이 같다면 낮은 라운드부터 정렬 */ class Stage { int stage; double failure; public Stage(int stage, double failure) { this.stage = stage; this.failure = failure; } } public class Level1_실패율 { public static int[] solution(int N, int[] stages) { int[] ans = new int[N]; // 총 시도한 사람 수 int people = stages.length; // 각 스테이지에서 실패한 사람 수 구하기 int[] failPersonCountForStage = new int[N+2]; for (int stage : stages) { failPersonCountForStage[stage]++; } // 각 스테이지에 대한 실패율 구하기 double[] failure = new double[N+2]; for (int i = 1; i < N+1; i++){ if (people == 0) { failure[i] = 0; } else { failure[i] = (double) failPersonCountForStage[i] / people; } people -= failPersonCountForStage[i]; } // ans1. 실패율이 높은 순서대로 스테이지 번호를 정렬 // ans2. 실패율이 같다면 스테이지 번호가 낮은 순서로 정렬 Stage[] stage = new Stage[N]; for (int i = 0; i < stage.length; i++){ stage[i] = new Stage(i+1, failure[i+1]); } Arrays.sort(stage, new Comparator<Stage>() { @Override public int compare(Stage s1, Stage s2){ return Double.compare(s2.failure, s1.failure); } }); for(int i = 0; i < ans.length; i++){ ans[i] = stage[i].stage; } return ans; } public static void main(String[] args) { int[] stages = {2, 1, 2, 6, 2, 4, 3, 3}; int N = 5; int[] solution = solution(N, stages); for (int a : solution) { System.out.print(a + " "); } } } | cs |
'PS > programmers' 카테고리의 다른 글
Level1) 다트게임 (0) | 2021.04.27 |
---|---|
Level1) 비밀지도 (0) | 2021.03.17 |
Level1) 예산 (0) | 2021.03.16 |
Level2) 전화번호 목록 (0) | 2021.01.08 |
Level2)가장 큰 수 (0) | 2020.11.10 |
링크
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- js array
- 패스트캠퍼스 컴퓨터공학 완주반
- 김영한 JPA
- 이펙티브자바 아이템60
- 이펙티브자바
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초
- Spring Security
- BOJ
- ㅇㄷㅇㅈ
- JS 딥다이브
- 모던자바스크립트
- 드림코딩
- 백기선 스터디
- java
- JPA 연관관계 매핑
- dreamcoding
- 킹수빈닷컴
- http
- HTTP 완벽 가이드
- 백준
- HTTP 완벽가이드
- REST API
- GCP
- js api
- js promise
- 프로그래머스
- 김영한 http
- 이펙티브자바 스터디
- 프로그래머스 SQL
- 이펙티브자바 아이템59
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함