본문 바로가기

cospro2급/cospro_6차

2021-05-31 / 4번 문제

문제 설명

카드를 3장 뽑아 점수를 내는 게임을 하려고 한다. 각 카드는 색이 칠해져 있고, 숫자가 적혀 있다. 

획득한 점수를 계산하는 규칙은 다음과 같다.

 

   1. 카드 3장의 색이 모두 같다면 획득한 점수는 적힌 숫자의 총합에 3을 곱한 값이다.

   2. 카드 2장의 색이 같고, 1장의 색이 다르다면 획득한 점수는 적힌 숫자의 총합에 2를 곱한 값이다.

   3. 카드 3장의 색이 모두 다르다면 획득한 점수는 적힌 숫자의 총합이다.

 

뽑은 카드의 색과 숫자를 문자열로 담은 2차원 배열 cards, cards의 길이 cards_len이 매개변수로 주어질 때, 획득한 총 점수를 return 하는 solution 함수를 완성한다.

 

매개변수 설명

뽑은 카드의 색과 숫자를 문자열로 담은 2차원 배열 cards, cards의 길이 cards_len이 매개변수로 주어진다.

  cards는 3x2 크기인 2차원 배열이다.

  cards_len은 항상 3이다.

  cards의 각 원소는 [색, 숫자]이다.

  카드의 색은 ["red", "black", "blue"] 중 하나이다.

  카드의 적힌 숫자는 1 이상 9 이하인 자연수이다.

 

return 값 설명

획득한 총 점수를 return 한다.

 

예시

 

예시 설명

예제 1) 모든 카드 색이 모두 다르기 때문에 획득한 점수는 적힌 숫자의 총합인 10 이다.

예제 2) 두 카드 색이 같고, 1장의 색이 다르기 때문에 획득한 점수는 적힌 숫자의 총합에 2를 곱한 10이다.

 

코드 설명

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

int solution(char* cards[][2], int cards_len) {
    int answer = 0;
		int cnt=0;

	if(strcmp(cards[0],cards[1])==0) cnt++;	//같을 경우 ++을 해준다. 
	if(strcmp(cards[1],cards[2])==0) cnt++;	
	if(strcmp(cards[0],cards[2])==0) cnt++;	

		for(int i=0; i<cards_len; i++)
			answer+=atoi(cards[i][1]);	//char형을 정수형으로 바꿔주는 함수
	
	if(cnt==3) answer*=3;	//카드 셋다 같을 경우
	else if(cnt==1 || cnt==2) answer*=2;	//카드가 2장 같을 경우
	
	return answer;
}

int main() {
    char* cards1[][2] = {{"blue", "2"}, {"red", "5"}, {"black", "3"}};
    int cards_len1 = 3;
    int ret1 = solution(cards1, cards_len1);

    printf("solution 함수의 반환 값은 %d 입니다.\n", ret1);

    char* cards2[][2] = {{"blue", "2"}, {"blue", "5"}, {"black", "3"}};
    int cards_len2 = 3;
    int ret2 = solution(cards2, cards_len2);

    printf("solution 함수의 반환 값은 %d 입니다.\n", ret2);
}

 

if(strcmp(cards[0],cards[1])==0) cnt++; 
if(strcmp(cards[1],cards[2])==0) cnt++; 
if(strcmp(cards[0],cards[2])==0) cnt++;

 

카드의 색이 같을 때마다 ++을 해준다. 그렇기 때문에 최종적으로 모두 같을 경우에는 cnt는 3이 된다.

카드가 2장 같을 경우에는 조건식 세개 중 두개가 충족하거나 하나만 충족할 수 도 있다. 그렇기 때문에 cnt는 1이 될수도, 2가 될수도 있다. 

 

 

 

goorm

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

www.goorm.io

 

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

2021-05-31 / 9번 문제  (0) 2021.05.31
2021-05-30 / 6번 문제  (0) 2021.05.30
2021-05-30 / 7번 문제  (0) 2021.05.30
2021-05-30 / 5번 문제  (0) 2021.05.30
2021-05-30 / 10번 문제  (0) 2021.05.30