[ 입력 ]
- 첫째 줄에 랭킹 리스트에 저장되어있는 점수의 개수 N, 새로운 점수, 랭킹 리스트에 올라갈 수 있는 개수 P 입력
- 둘째 줄에 랭킹리스트에 있는 N 개의 수 내림차순으로 입력
[ 입력 제한 ]
- 1 ≤ N ≤ P
- 10 ≤ P ≤ 50
- 모든 점수 ≤ 2,000,000,000 , 자연수 || 0
[ 출력 ]
- 새로운 점수가 랭킹 리스트에서 몇 등인지 출력
이 문제는 정렬이 필요할 것 같지만 랭킹리스트 입력을 받을 때부터 내림차순으로 정렬되어있으므로 정렬할 필요가 없다.
N 개의 수를 입력받아서 리스트의 처음, 즉 가장 큰 수부터 새로운점수를 비교해가며 list의 수보다 새로운점수가 작다면 rank를 1 증가하고, 그렇지 않다면 for문을 탈출하는 방법으로 해결했다.
ranking list 에서 동점이라면 그 중 작은 랭킹으로 저장하고, 그 후 작은 수가 나왔을때는 다시 원래의 랭킹으로 구해야 하므로 count 라는 새로운 변수를 비교할 때마다 1씩 증가하도록 하였다.
이렇게 비교 후 count 와 P 가 같다면 , 다시말해 끝까지 비교해봤지만 그것보다 작은 경우 랭킹리스트에 올라갈 수 없으므로 -1 을 출력한다.
만약 N 이 0이라면, 즉 아직 랭킹리스트에 점수가 하나도 없다면 새로운 점수는 입력 즉시 첫번째 점수가 되므로 1 출력한다.