-
728x90
- player[ 스테이지번호 -1 ][ 머물러있는 플레이어 수 ] : 각 스테이지에 몇명의 플레이어가 있는지를 저장
- low_stage : 내 앞 단계까지의 플레이어 수의 합
- people - low_stage : 전체 플레이어 수 - 앞 단계에 있는 플레이어 수
=> 스테이지에 도달한 플레이어 수를 알 수가 있음
import java.util.Arrays;class Solution {public int[] solution(int N, int[] stages) {int[] answer = new int[N];double player[][] = new double[N][2];for (int i = 0; i < N; i++)player[i][0] = i + 1; // 스테이지 번호int people = stages.length; // 총 플레이어 수for (int i = 0; i < people; i++) {if (stages[i] <= N)player[stages[i] - 1][1]++; // 머물러있는 사람 수 증가}int low_stage = 0; // 아직 도달하지 못한 사람 수for (int i = 0; i < N; i++) {double temp = player[i][1];player[i][1] = player[i][1] / (people - low_stage); // 실패율low_stage += temp;if (low_stage == people)break;}Arrays.sort(player, (o1, o2) -> {if (o1[1] == o2[1])return Double.compare(o1[0], o2[0]); // 실패율 같으면 번호 오름차순return -Double.compare(o1[1], o2[1]); // 실패율 내림차순});for (int i = 0; i < N; i++)answer[i] = (int) player[i][0];return answer;}}데롱디롱희희.. (๑′ᴗ‵๑)
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
[level1] 프로그래머스 - 3진법 뒤집기(JAVA) (0) 2021.08.27 [level1] 프로그래머스 - 약수의 개수와 덧셈(JAVA) (0) 2021.08.27 [level1] 프로그래머스 - 상호 평가(JAVA) (0) 2021.08.27 [level1] 프로그래머스 - 폰켓몬(JAVA) (0) 2021.08.27 [level1] 프로그래머스 - 이름이 없는 동물의 아이디(MySQL) (0) 2021.08.27