[코테]/[GroomEdu]
[COS PRO 2급] 4차 7번_오른 점수와 떨어진 점수 구하기 (C/C++)
Sky_
2021. 5. 21. 22:50
주어진 코드
#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 > scores2[i] - scores1[i]) //중간점수 - 기말점수
answer = scores2[i] - scores1[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");
}
완성 코드
#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");
}
answer[1] = func_b(mid_scores, final_scores, mid_scores_len);
을 실행하게 되면, 매개변수의 순서에 따라 중간고사 점수 - 기말고사 점수가 계산된다.
하지만 문제에서 원하는 값은 기말 - 중간의 값이므로
매개변수의 순서를 바꾸어야 한다.
answer[1] = func_b(mid_scores, final_scores, mid_scores_len);
-> answer[1] = func_b(final_scores, mid_scores, mid_scores_len);
예시
mid_scores | mid_scores_len | final_scores | final_scores_len | return |
[20,50,40] | 3 | [10,50,70] | 3 | [30,-10] |
goorm
구름은 클라우드 기술을 이용하여 누구나 코딩을 배우고, 실력을 평가하고, 소프트웨어를 개발할 수 있는 클라우드 소프트웨어 생태계입니다.
www.goorm.io