문제
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 |