Notice
Recent Posts
Recent Comments
Link
«   2026/04   »
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
more
Archives
Today
Total
관리 메뉴

우당탕탕 개발자 되기

프로그래머스 카카오 실패율 본문

자료구조&알고리즘

프로그래머스 카카오 실패율

KimMINHun 2021. 9. 30. 02:23

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;
    }
}

각각의 실패율을 구하고 정렬을 구하는 문제로 실패율이 같다면 작은 스테이지 수 순으로 나열한다.

처음에 어떻게 풀이 방법만 정한다면 큰 어려움 없이 풀수 있는 문제인거같다.