일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Spring
- Baekjoon
- SW Expert Academy
- 스포티파이
- python
- modern c++
- regression
- programmers
- Spotify Api
- Spring JPA
- 회원가입
- linux
- spotify
- 파이썬
- MYSQL
- 자바
- 회귀
- spring boot
- SECS/GEM
- SWEA
- java
- SECS
- 백준
- c
- C++
- Gem
- SECS-II
- Computer Science
- 프로그래머스
- CS
Archives
- Today
- Total
비버놀로지
[Programmers 프로그래머스] 42889 실패율 본문
728x90
programmers.co.kr/learn/courses/30/lessons/42889
각 각의 스테이지에 실패해서 있는 횟수를 추가해 준다.
위의 예제를 보면 1에 한명 2에 3명 3에 3명 4에 1명 6에 1명이 있는 것을 알 수 있다. 이러한 값을 Stage라는 클래스를 만들어서 실패율과 스테이지를 저장해 준다.
그렇게 만들어진 Stage 클래스를 이용해서 1스테이지에 한명이 실패해 있는 상태이므로 실패율은 1/8을 스테이지 클래스를 이용해서 1에 실패율은 1/8을 넣어준다.
그리고 2스테이지는 1스테이지에서 실패한 1명을 빼고, 3/7과 함께 리스트를 넣어준다.
그렇게 만들어진 리스트를 comparable을 이용해서 정렬을 해주고, 결과값에 넣어주어 출력해 준다.
import java.util.ArrayList;
import java.util.Arrays;
class Solution {
public int[] solution(int N, int[] stages) {
int[] answer = new int[N];
double[] temp = new double[N + 1];
ArrayList<Stage> arrlist = new ArrayList<Stage>();
int size = stages.length;
for (int i = 0; i < stages.length; i++) {
if (stages[i] <= N) {
temp[stages[i]]++;
} else
continue;
}
for (int i = 1; i <= N; i++) {
double k = temp[i];
if (size == 0) {
temp[i] = 0;
} else {
temp[i] /= size;
}
size -= k;
arrlist.add(new Stage(i, temp[i]));
}
arrlist.sort(Stage::compareTo);
for (int i = 0; i < arrlist.size(); i++) {
answer[i] = arrlist.get(i).stage;
}
return answer;
}
}
class Stage implements Comparable<Stage>{
int stage;
double failure;
public Stage(int stage, double failure) {
super();
this.stage = stage;
this.failure = failure;
}
@Override
public int compareTo(Stage o) {
if(this.failure == o.failure) {
return this.stage < o.stage ? -1 : 1;
}else {
return this.failure>o.failure?-1:1;
}
}
}
728x90
'ALGORITM > JAVA' 카테고리의 다른 글
[BAEKJOON 백준] 1000 A+B (0) | 2021.01.10 |
---|---|
[Programmers 프로그래머스] 17682 [1차] 다트 게임 (0) | 2021.01.10 |
[Programmers 프로그래머스] 17681 [1차] 비밀지도 (0) | 2021.01.10 |
[Programmers 프로그래머스] 12982 예산 (0) | 2021.01.08 |
[Programmers 프로그래머스] 12969 직사각형 별찍기 (0) | 2021.01.08 |
Comments