우당탕탕 개발자 되기
프로그래머스 카카오 실패율 본문
https://programmers.co.kr/learn/courses/30/lessons/42889
코딩테스트 연습 - 실패율
실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스
programmers.co.kr
import java.util.*;
class Solution {
public static class user implements Comparable<user>{
int x;
double y;
public user(int x, double y) {
this.x = x;
this.y = y;
}
@Override
public int compareTo(user o) {
if (o.y == this.y) {
return this.x - o.x;
}
return Double.compare(o.y, this.y);
}
}
public static int[] solution(int N, int[] stages) {
int[] answer = new int[N];
List<user> list = new ArrayList<>();
Arrays.sort(stages);
int[] users = new int[N + 2];
for (int stage : stages) {
users[stage]++;
}
int size = stages.length;
for (int i = 1; i <= N; i++) {
if (users[i] == 0) {
list.add(new user(i, 0));
}else{
list.add(new user(i, (double)users[i] / size));
}
size -= users[i];
}
Collections.sort(list);
for (int i = 0; i < N; i++) {
answer[i] = list.get(i).x;
}
return answer;
}
}
각각의 실패율을 구하고 정렬을 구하는 문제로 실패율이 같다면 작은 스테이지 수 순으로 나열한다.
처음에 어떻게 풀이 방법만 정한다면 큰 어려움 없이 풀수 있는 문제인거같다.
'자료구조&알고리즘' 카테고리의 다른 글
| 프로그래머스 카카오 로또의 최고 순위와 최저 순위 (0) | 2021.09.30 |
|---|---|
| 백준_나이트의 이동(7562) in Java (0) | 2021.08.08 |
| 백준_전깃줄(2565) In Java (0) | 2021.08.02 |
| 백준_가장 큰 증가 부분수열(11055) In Java (0) | 2021.08.02 |
| 백준_가장 긴 증가하는 부분 수열(11053) In Java (0) | 2021.08.02 |