본문 바로가기
코딩 테스트/[c언어] cos pro 2급 기출문제

[No. 37] 오른 점수와 떨어진 점수 구하기 / cos pro 2급 c언어 기출 문제

by M개발자 2021. 5. 21.
반응형

오른 점수와 떨어진 점수 구하기


문제 설명

 

중간 시험 점수와 기말 시험 점수가 있습니다. 이를 바탕으로 점수가 가장 많이 오른 학생의 점수 차이와 가장 많이 떨어진 학생의 점수 차이를 구하려 합니다. 이를 위해 다음과 같이 프로그램 구조를 작성했습니다.

 

1. 각 학생에 대하여 기말고사 점수에서 중간고사 점수를 뺀 값의 최댓값을 구합니다.

2. 각 학생에 대하여 기말고사 점수에서 중간고사 점수를 뺀 값의 최솟값을 구합니다.

3. 1번과 2번 과정에서 구한 점수를 배열에 담아 return 합니다. 

 

그러나, 코드 일부분이 잘못되어있기 때문에 올바르게 동작하지 않으므로 한 줄만 변경해서 올바르게 동작하도록 수정하세요.

 


예시

 

mid_scores mid_scores_len final_scores final_scores_len return
[20, 50, 40] 3 [10, 50, 70] 3 [30, -10]

수정해야 할 코드

더보기
int* solution(int mid_scores[], int mid_scores_len, int final_scores[], int final_scores_len) {
    int* answer = (int*)malloc(sizeof(int) * 2);
    answer[0] = func_a(mid_scores, final_scores, mid_scores_len);
    answer[1] = func_b(mid_scores, final_scores, mid_scores_len);
    return answer;
}

 

수정

answer[1] = func_b(mid_scores, final_scores, mid_scores_len);
→ answer[1] = func_b(final_scores, mid_scores, mid_scores_len);

 

코드 해석 및 전체 코드

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int func_a(int scores1[], int scores2[], int scores_len) {
    int answer = 0;
    for (int i = 0; i < scores_len; i++)
        if (answer < scores2[i] - scores1[i])
            answer = scores2[i] - scores1[i];
    return answer;
}

int func_b(int scores1[], int scores2[], int scores_len) {
    int answer = 0;
    for (int i = 0; i < scores_len; i++)
        if (answer > scores1[i] - scores2[i])
            answer = scores1[i] - scores2[i];
    return answer;
}

int* solution(int mid_scores[], int mid_scores_len, int final_scores[], int final_scores_len) {
    int* answer = (int*)malloc(sizeof(int) * 2);
    answer[0] = func_a(mid_scores, final_scores, mid_scores_len);
    answer[1] = func_b(final_scores, mid_scores, mid_scores_len);
    return answer;
}
int main() {
    int mid_scores[] = { 20, 50, 40 };
    int final_scores[] = { 10, 50, 70 };
    int* ret = solution(mid_scores, 3, final_scores, 3);

    printf("solution 함수의 반환 값은 [");
    for (int i = 0; i < 2; i++) {
        if (i != 0) printf(", ");
        printf("%d", ret[i]);
    }
    printf("] 입니다.\n");
}

cos pro 2급 기출문제

github

 

구름 goormedu COS PRO 2급 기출문제 - C언어

 

 

 

 

반응형

댓글