본문 바로가기

cospro2급/cospro_4차

201-05-19

cospro 3번 문제

획득 점수 구하기. 도박은 안되요.

 

문제설명

A와 B가 카트 게임을 할  때, 누가 더 많은 점수를 획득했는지, 또 획득한 점수는 몇점인지 알아보려 한다. 게임 규칙은 다음과 같다. 

   알파벳 a, b, c, d, e가 적힌 카드뭉치가 있다.

   A와 B가 서로 번갈아 가면서 n장씩 카드를 뽑는다.

   소유한 카드 점수를 합산한다. 알파벳 카드 한 장당 a=1점, b=2점, c=3점, d=4점, e=5점으로 점수를 계산한다.

   점수가 높은 사람이 승리한다.

   

게임에서 이긴 사람과 획득 점수를 구하기 위해 다음과 같이 프로그램 구조를 작성했다.

1. A와 B가 번갈아가며 가져간 카드를 각각 배열에 넣는다.

2. A와 B가 각각 획득한 점수를 구한다.

3. 획득한 점수가 큰 사람과 획득한 점수를 순서대로 배열에 담아 return 한다.

 

뽑아야 하는 카드 개수 n, 카드를 나타내는 문자 배열 bundle, bundle의 길이 bundle_len이 매개변수로 주어질 때, 이긴 사람과 점수를 return 하는 solution 함수를 완성한다.

 

매개변수 설명

뽑아야 하는 카드 개수 n, 카드를 나타내는 문자 배열 bundle, bundle의 길이 bundle_len이 매개변수로 주어진다.

   n은 1 이상 25 이하인 자연수이다.

   bundle의 모든 원소는 알파벳 소문자이다.

   bundle_len은 2 이상 2*n 이하이다.

 

return 값 설명

이긴 사라모가 획득한 점수를 return 한다.

A가 이겼을 경우에는 1, B가 이겼을 경우에는 2, 무승부일 경우에는 0을 return 한다.

 

예시

예시 설명

 

코드 설명

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

//가져간 카드 배열에 넣기
char* func_a(char* bundle, int start, int n) {
    char* answer = (char*)malloc(sizeof(char) * n);
    for(int i=0; i<n; i++)
        answer[i] = bundle[start+i*2];
    return answer;
}
//획득한 점수가 큰 사람과 획득한 점수 배열에 순서대로 담기
int* func_b(int score1, int score2) {
    int* answer = (int*)malloc(sizeof(int) * 2);
    if(score1 > score2) {
        answer[0] = 1;
        answer[1] = score1;
    }
    else if(score1 < score2) {
        answer[0] = 2;
        answer[1] = score2;
    }
    else {
        answer[0] = 0;
        answer[1] = score1;
    }
    return answer;
}

//각각 획득한 점수 구하기
int func_c(char* card, int card_length) {
    int answer = 0;
    for(int i = 0; i < card_length; i++) {
        answer += card[i] - 'a' + 1;
    }
    return answer;
}
int main() {
    int n = 4;
    char* bundle = "cacdbdedccbb";    
    int* ret = solution(n, bundle);

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

 

 

 

goorm

구름은 클라우드 기술을 이용하여 누구나 코딩을 배우고, 실력을 평가하고, 소프트웨어를 개발할 수 있는 클라우드 소프트웨어 생태계입니다.

www.goorm.io

 

'cospro2급 > cospro_4차' 카테고리의 다른 글

2021-05-20  (0) 2021.05.20
2021-05-20  (0) 2021.05.20
2021-05-19  (0) 2021.05.19
2021-05-18  (0) 2021.05.18
2021-05-18  (0) 2021.05.18