반응형
시험 등수 구하기
문제 설명
시험 점수에 따라 학생의 순위를 매기려 합니다. 동점자 순위는 가능한 순위 중 가장 높은 순위로 매깁니다.
예를 들어 학생별 점수가 [90, 87, 87, 23, 35, 28, 12, 46]이면, 학생별 순위는 [1, 2, 2, 7, 5, 6, 8, 4]입니다.
모든 학생의 점수를 담은 배열 score, 배열 score의 길이 score_len이 매개변수로 주어질 때, 순위를 담은 배열을 return 하도록 solution 함수를 작성해주세요.
예시
score | score_len | return |
[90, 87, 87, 23, 35, 28, 12, 46] | 8 | [1, 2, 2, 7, 5, 6, 8, 4] |
[10, 20, 20, 30] | 4 | [4, 2, 2, 1] |
코드 해석 및 전체 코드
솔루션
첫 번째 for문은 점수의 순위를 구하기 위해 0 ~ n까지 반복한다. (한 번씩 반복문을 실행하기 위해서)
두 번째 for문은 점수 k를 다른 점수들과 비교하여 순위를 구하기 위해 반복한다.
총 for문은 n * n 번 실행한다.
answer ) 순위를 담은 배열로 동적 메모리 할당을 준다.
for ) i ~ score_len - 1까지 반복한다.
answer[i]) answer[i]를 반복할 때마다 1로 초기화해준다.
1등부터 ~ n 등까지의 등수를 구하기 때문에 1로 초깃값을 준다.
for in for ) 0 ~ score_len - 1까지 반복한다.
if in for ) score[i]가 score[j]보다 작을 경우 j보다 순위가 떨어지므로 answer[i]를 1 증가한다.
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int* solution(int score[], int score_len) {
int* answer;
answer = (int*)malloc(sizeof(int) * score_len);
for(int i = 0; i < score_len; i++){
answer[i] = 1;
for(int j = 0; j < score_len; j++){
if(score[i] < score[j]) answer[i]++;
}
}
return answer;
}
int main() {
int score1[] = {90, 87, 87, 23, 35, 28, 12, 46};
int score_len1 = 8;
int *ret1 = solution(score1, score_len1);
printf("solution 함수의 반환 값은 [");
for(int i = 0; i < score_len1; i++){
if (i != 0)
printf(", ");
printf("%d", ret1[i]);
}
printf("] 입니다.\n");
int score2[] = {10, 20, 20, 30};
int score_len2 = 4;
int *ret2 = solution(score2, score_len2);
printf("solution 함수의 반환 값은 [");
for(int i = 0; i < score_len2; i++){
if (i != 0)
printf(", ");
printf("%d", ret2[i]);
}
printf("] 입니다.\n");
}
구름 goormedu COS PRO 2급 기출문제 - C언어
반응형
'코딩 테스트 > [c언어] cos pro 2급 기출문제' 카테고리의 다른 글
[No.51] 저는 따뜻한 날이 좋아요 / cos pro 2급 c언어 기출 문제 6차 문제 1 (0) | 2021.05.28 |
---|---|
[No.50] 가장 오래 일한 사람을 구해주세요 / cos pro 2급 c언어 기출 문제 5차 문제 10 (0) | 2021.05.27 |
[No.48] 상수도 요금 구하기. (물을 아껴 씁시다.) / cos pro 2급 c언어 기출 문제 5차 문제 8 (0) | 2021.05.26 |
[No.47] 계산대 두 개에서 계산 시간을 구해주세요! / cos pro 2급 c언어 기출 문제 5차 문제 7 (0) | 2021.05.26 |
[No.46] 이제 수학 시험에 모든 걸 건다. 평균 70을 위하여! / cos pro 2급 c언어 기출 문제 (0) | 2021.05.25 |
댓글