문제

N명의 학생의 수학점수가 입력되면 각 학생의 석차를 입력된 순서대로 출력하는 프로그램을 작성하세요.

입력설명

첫 줄에 N(1<=N<=100)이 입력되고, 두 번째 줄에 수학점수를 의미하는 N개의 정수가 입력된 다. 같은 점수가 입력될 경우 높은 석차로 동일 처리한다. 즉 가장 높은 점수가 92점인데 92 점이 3명 존재하면 1등이 3명이고 그 다음 학생은 4등이 된다. 점수는 100점 만점이다.

출력설명

첫 줄에 입력된 순서대로 석차를 출력한다.

입력예제

5
90 85 92 95 90

출력예제

3 5 2 1 3

#include <stdio.h>

int main(){
	//freopen("input.txt", "rt", stdin);
	int n, i, j, score[101], rank[101];
	scanf("%d", &n);
	
	for(i=1; i<=n; i++){
		scanf("%d", &score[i]);
		rank[i] = 1;
	}
	
	for(i=1; i<=n; i++){
		for(j=1; j<=n; j++){
			if(score[i] < score[j]){
				rank[i]++;
			}
		}
	}
	
	for(i=1; i<=n; i++){
		printf("%d ", rank[i]);
	}
	
	return 0;
}

rank 배열을 1로 초기화후 score 배열에 점수를 입력받고 이중for문을 통해 i인덱스의 점수와 j인덱스 점수를 비교해서 j가 크다면 rank[i]++; 하면 됩니다.

EEEEEEEEEEEEEEZ

'알고리즘 > it 취업을 위한 알고리즘 문제풀이' 카테고리의 다른 글

27. N!의 표현법  (1) 2021.05.19
26. 마라톤  (0) 2021.05.19
24. Jolly Jumpers <algorithm>  (0) 2021.05.19
23. 연속 부분 증가수열  (0) 2021.05.18
22. 온도의 최대값  (0) 2021.05.18

+ Recent posts