본문 바로가기

알고리즘 공부/백준 > Python3

[백준 파이썬] #10801: 카드 게임

www.acmicpc.net/problem/10801

 

10801번: 카드게임

두 사람 A와 B는 1부터 10까지의 숫자가 하나씩 적힌 열 장의 카드로 ‘게임’을 한다. 게임은 총 열 번의 ‘라운드’로 구성되고, 각 라운드 마다 자신이 가지고 있는 카드 중 하나를 제시하고,

www.acmicpc.net

 

[문제]

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

  1. 각 라운드는 더 높은 숫자를 제시한 사람이 승리하고, 제시한 숫자가 같은 경우는 비긴다.

  2. 열 번의 라운드에서 더 많은 라운드를 승리한 사람이 게임을 승리하고, 승리한 라운드 횟수가 동일한 경우 비긴다.

 

라운드 순서대로 A와 B가 제시한 카드의 숫자가 주어졌을 때, 게임의 승자를 판단하는 프로그램을 작성하시오. (게임의 승패가 결정되는 경우 승리한 사람을 출력하고, 비기는 경우에는 D를 출력한다.)

 

[문제 접근]

A,B가 제시한 카드를 리스트로 받아 for문을 돌면서 A,B 리스트를 비교한다. 비교한 결과를 리스트 score에 추가한다. 만약 score에 A가 많다면 승자는 A, B가 많다면 승자는 B, A와 B의 수가 같다면 비겼으므로 D를 출력한다.

 

 

[정답]

 

1. A,B가 제시한 카드를 리스트 A,B에 선언한다. A,B를 비교하여 결과를 저장할 score를 선언한다.

2. for문을 10번 돌면서 A,B를 비교하고 score에 A>B라면 A를 추가, A<B라면 B를 추가, A==B라면 D를 추가한다.

3. 만약 score에 A가 많다면 승자는 A, B가 많다면 승자는 B, A와 B의 수가 같다면 비겼으므로 D를 출력한다.