문제 설명
1번부터 n(=3k)번까지의 번호가 부여된 n명의 학생들의 점수가 담긴 배열 scores가 주어집니다. 이 때, 학생들에게 아래 기준에 따라 등급을 부여하려고 합니다.
- 상위 33% (k명) : "A"
- 중간 33% (k명) : "B"
- 하위 33% (k명) : "C"
점수가 높은 학생부터 상위 등급을 부여하며, 만약 점수가 같다면 학생 번호가 작은 순서대로 상위 등급을 부여합니다. 모든 학생들에 대해 번호 순서대로 학생이 부여받은 등급을 반환하는 solution 함수를 작성하시오.
제한 사항
scores의 길이 n은 3 이상 100,000 이하이며 3의 배수입니다.scores의 각 원소는 1 이상 100 이하의 정수입니다.
예시 테스트케이스 설명
| 테스트케이스 번호 | scores | return |
|---|---|---|
| 1 | [70,80,90,60,50,85] | ["B","B","A","C","C","A"] |
| 2 | [70,70,70] | ["A","B","C"] |
| 3 | [100,100,98,96,98,99] | ["A","A","B","C","C","B"] |
1번 테스트케이스 설명
- (학생 번호, 점수) 로 묶어 나열하면 다음과 같습니다.
- (1, 70), (2, 80), (3, 90), (4, 60), (5, 50), (6, 85)
- 점수를 기준으로 정렬하면 다음과 같습니다.
- (3, 90), (6, 85), (2, 80), (1, 70), (4, 60), (5, 50)
- 이에 순서대로 2명씩 등급을 부여한 뒤 학생 번호 순서대로 나열된 결과는 ["B","B","A","C","C","A"] 입니다.
2번 테스트케이스 설명
- 모든 점수가 동일(70)이므로 학생 번호 기준으로 순서대로 1명씩 등급을 부여합니다.
- 이에 학생 번호 순서대로 나열된 학생별 등급 결과는 ["A","B","C"] 입니다.
3번 테스트케이스 설명
- (학생 번호, 점수) 로 묶어 나열하면 다음과 같습니다.
- (1, 100), (2, 100), (3, 98), (4, 96), (5, 98), (6, 99)
- 점수를 기준으로 정렬하면 다음과 같습니다.
- (1, 100), (2, 100), (6, 99), (3, 98), (5, 98), (4, 96)
- 이에 순서대로 2명씩 등급을 부여한 뒤 학생 번호 순서대로 나열된 결과는 ["A","A","B","C","C","B"] 입니다.