Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- string
- Binary Search
- Stack
- database
- sorting
- 파이썬
- 자바
- Math
- Method
- Binary Tree
- 구현
- Data Structure
- Class
- simulation
- implement
- geometry
- 코테
- array
- dynamic programming
- Counting
- 코딩테스트
- java
- hash table
- two pointers
- Matrix
- greedy
- SQL
- Number Theory
- Tree
- bit manipulation
Archives
- Today
- Total
코린이의 소소한 공부노트
[프로그래머스/Lv.1] 실패율 본문
1. Input, Output, Example
- 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 주어질 때, 실패율이 높은 스테이지부터 내림차순으로 스테이지의 번호가 담겨있는 배열을 반환
- 실패율 계산: 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수
2. Constraint
1) 스테이지의 개수 N은 1 이상 500 이하의 자연수
2) stages의 길이는 1 이상 200,000 이하
3) stages에는 1 이상 N + 1 이하의 자연수가 담겨있다.
4) 각 자연수는 사용자가 현재 도전 중인 스테이지의 번호를 나타낸다. 단, N + 1 은 마지막 스테이지(N 번째 스테이지)까지 클리어 한 사용자를 나타낸다.
5) 만약 실패율이 같은 스테이지가 있다면 작은 번호의 스테이지가 먼저 오도록 하면 된다.
6) 스테이지에 도달한 유저가 없는 경우 해당 스테이지의 실패율은 0 으로 정의한다.
3. Code
import java.util.*;
class Solution { // 1
public int[] solution(int N, int[] stages) {
int[] reach = new int[N+1];
int[] success = new int[N+1];
for(int i : stages){
for(int j=1 ; j<i ; j++){
reach[j]++; success[j]++;
}
if(i<=N) reach[i]++;
}
List<Double> sorted = new ArrayList<>();
List<Double> origin = new ArrayList<>();
for(int i=1 ; i<=N ; i++){
double d = reach[i]==0? 0 : 1 - (double)success[i]/reach[i];
sorted.add(d); origin.add(d);
}
sorted.sort(Comparator.reverseOrder());
int[] result = new int[N];
for(int i=0 ; i<N ; i++){
result[i] = origin.indexOf(sorted.get(i))+1;
origin.set(origin.indexOf(sorted.get(i)),-1.0); // 중복 선택 방지
}
return result;
}
}
- +1
- 마음에 들진 않지만 별 수 있나..
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[프로그래머스/Lv.1] 기사단원의 무기 (0) | 2023.07.04 |
---|---|
[프로그래머스/Lv.1] [1차] 다트 게임 (0) | 2023.07.04 |
[프로그래머스/Lv.1] 소수 찾기 (0) | 2023.07.04 |
[백준 온라인 저지] 1780. 종이의 개수 (0) | 2023.07.01 |
[백준 온라인 저지] 1992. 쿼드트리 (0) | 2023.07.01 |