실패율
https://www.welcomekakao.com/learn/courses/30/lessons/42889?language=java
2019 카카오 신입 공채 1차 코딩 테스트
풀이
- stages 배열을 순회하며 각 스테이지마다 남아 있는 인원수를 체크한다.
- 각 스테이지마다 실패율을 계산하여 스테이지 번호와 실패율을 리스트에 저장한다.
- 리스트를 실패율을 기준으로 내림차순 정렬한다.
예를 들어, 스테이지 개수는 5개, 사용자가 각 스테이지에 현재 도전중인 스테이지 번호는 [2, 1, 2, 6, 2, 4, 3, 3]
각 스테이지의 실패율은 다음 그림과 같이 구한다.
개념
Java 에서 정렬하기 위해서 java.util.Collections 클래스의 메소드인 sort()를 사용한다.
객체를 원소로 가진 리스트를 정렬하고자 할 때는, 객체가 Comparable interface를 구현해야 한다.
본 문제에서는 Fail class를 원소로 가지는 arrayList를, Fail class의 rate를 기준으로 내림차순 정렬하고 있다.
이를 위해, Fail class에 compareTo 메소드를 오버라이딩하고 있다.