실패율

https://www.welcomekakao.com/learn/courses/30/lessons/42889?language=java

2019 카카오 신입 공채 1차 코딩 테스트

풀이

  1. stages 배열을 순회하며 각 스테이지마다 남아 있는 인원수를 체크한다.
  2. 각 스테이지마다 실패율을 계산하여 스테이지 번호와 실패율을 리스트에 저장한다.
  3. 리스트를 실패율을 기준으로 내림차순 정렬한다.

예를 들어, 스테이지 개수는 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 메소드를 오버라이딩하고 있다.

Comments