말 그대로 등수를 구하는 문제이다.
단, 동점이 존재할 경우 같은 등수로 보고 그 직후의 등수를 +1등수로 한다.
Test Case로 예를 들면,
[100, 90, 90, 80]이 존재할 때 1,2,2,4등인 것이다.
3등이 없고 동점자는 2등으로 두명인 셈이다.
나는 처음에 문제를 잘못 이해하고(대충 본 내 잘못.맞음.) 80을 3등이라고 생각했다.
그래서 list로 입력을 받은 뒤 set로 집합, 다시 list로 변형하고 reverse했다.
set로 만들면 원소의 순서가 랜덤하기 때문이었다.
복잡하게 생각한게 오히려 독이었다.
+) 애초에 비오름차순으로 점수를 주었기 때문에 list로 받기만 하면 끝!
점수를 낸 것이 최초(n=0)일 경우 무조건 1등이다.
그리고 n=0이 아닌 경우는 그 안에서 또 두 가지 조건으로 나뉜다.
정해진 순위권(p등) 안에 들지 못하는 점수면 -1을 출력한다.
이 경우를 따지기 위해선 주어진 점수(n)는 p개 이상이어야 한다. 이게 첫 번째.
p보다 작은 개수의 점수가 주어졌을 때는 필히 순위권에 들 수 있으므로 다음 조건으로 넘어간다.
두 번째 조건이다. 이때는 위의 조건들을 모두 통과하여 왔으므로 그냥 순위를 출력하면 된다.
i = 0부터 시작하므로 답은 i+1로 해준다. 주어진 점수와 score를 비교하는 반복문을 짜서 돌린다.
조건에 부합하는 rank[i]가 있을 때까지 실행 후 break된다.
'공부 > 백준' 카테고리의 다른 글
[백준] 13305번 (0) | 2022.06.15 |
---|---|
[백준] 1764번 (0) | 2022.06.15 |
[백준] 1436번 (0) | 2022.06.15 |
[백준] 11050번 (0) | 2022.06.15 |
[백준] 1152번 (0) | 2022.06.15 |