-
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 댓글