알고리즘 스터디(2) - 1205번: 등수 구하기

Song Chae Won·2023년 3월 26일
0

알고리즘

목록 보기
3/9
post-thumbnail

🤍 실버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을 출력해야함!

profile
@chhaewxn

0개의 댓글