🤍 실버4 - 1205번: 등수 구하기
#include <stdio.h>
int main()
{
int N, my_score, P; // N은 현재 랭킹 리스트에 있는 점수, my_score은 내 점수, P는 랭킹 리스트에 들어갈 수 있는 점수 개수
int score[50]; // 랭킹 리스트
int rankcount = 0; // 등수 카운트
int my_rank = 1; // 내 등수
scanf_s("%d %d %d", &N, &my_score, &P);
for (int i = 0; i < N; i++)
{
scanf_s("%d", &score[i]); // 현재 랭킹 리스트에 있는 점수 N개 입력받기
}
for (int i = 0; i < N; i++)
{
if (my_score < score[i])
{
my_rank++; // 내 점수가 랭킹 리스트에 있는 점수 미만의 값이면 내 등수 +1
}
else if (my_score == score[i])
{} // 이 부분 놓쳐서 오래걸림 .., 점수가 같을때와 작을때는 구분해주어야함.
else break; // 크면 빠져나옴!;
rankcount++; // 랭킹 리스트에서 내 점수보다 높거나 같은 점수의 총 개수 count
}
if (rankcount == P) // 내 점수보다 높은 점수의 개수가 P와 같으면 랭킹리스트에 못올라가므로
{
my_rank = -1; // 랭킹리스트에 올라갈 수 없으므로 -1 출력
}
printf("%d\n", my_rank);
return 0;
}
점수가 높을 때, 점수가 같을 때, 점수가 낮을 때 각각의 상황을 생각해주어야하고, 예외 사항으로 P의 개수를 꼭 생각해주어야함!
Ex) 4, 90, 4 일때
100, 90, 90, 90인 상황이면
랭킹에 들어가지 못하고 -1을 출력해야함!