본문 바로가기
[C++] 알고리즘 교육/1~4. 기본기

[알고리즘 2.2.5] 배열 - card game

by 안산학생 2019. 4. 23.

문제

사람 A B 1부터 10까지의 숫자가 하나씩 적힌 장의 카드로게임 한다. 게임은 번의라운드 구성되고, 라운드 마다 자신이 가지고 있는 카드 하나를 제시하고, 시한 카드는 버린다. 게임 승패는 다음과 같이 결정된다.

  1. 라운드는 높은 숫자를 제시한 사람이 승리하고, 제시한 숫자가 같은 경우는 비긴다.
  2. 번의 라운드에서 많은 라운드를 승리한 사람이 게임을 승리하고, 승리한 라운드 횟수 동일한 경우 비긴다.

다음은 게임의 예로, 라운드마다 A B 제시한 카드의 숫자와 라운드의 승자를 보여준다. (비긴 라운드는 D 표시함)

A 5번의 라운드에서 승리하고 B 4번의 라운 드에서 승리하였으므로, 게임은 A 승리한다. 라운드 순서대로 A B 제시한 카드의 숫자가 주어졌을 , 게임의 승자를 판단하는 프로그램을 작성하시오.

 

입력

다음 정보가 표준 입력으로 주어진다. 번째 에는 A 제시한 카드의 숫자 10개가 라운드 순서대로 주어지고, 번째 줄에는 B 제시한 드의 숫자 10개가 라운드 순서대로 주어진다.

 

출력

다음 정보를 표준 출력으로 출력한다. 게임의 패가 결정되는 경우 승리한 사람을 출력하고, 기는 경우에는 D 출력한다.

 

예제 입력

6 7 5 1 4 10 2 3 8 9 1 10 2 9 4 8 3 7 5 6

예제 출력

A

 

예제 입력

1 2 3 4 5 6 7 8 9 105 4 3 2 1 10 9 8 7 6

예제 출력

D

 

 

 

 

 

 

 

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
 
int main() {
 
  int player1[10];
  int player2[10];
  int i, sum1=0, sum2=0;
  for(i=0; i<10; i++){
    scanf("%d",&player1[i]);
  }
  for(i=0; i<10; i++){
    scanf("%d",&player2[i]);
  }
  
  for(i=0; i<10; i++){
    if(player1[i]>player2[i]){
      sum1++;
    }else if(player1[i]<player2[i]){
      sum2++;
    }
  }
  
  if(sum1>sum2){
    printf("A");
  }else if(sum2>sum1){
    printf("B");
  }else{
    printf("D");
  }
  
  return 0;
}
 

댓글