반응형
10801번: 카드게임
두 사람 A와 B는 1부터 10까지의 숫자가 하나씩 적힌 열 장의 카드로 ‘게임’을 한다. 게임은 총 열 번의 ‘라운드’로 구성되고, 각 라운드 마다 자신이 가지고 있는 카드 중 하나를 제시하고,
www.acmicpc.net
문제
두 사람 A와 B는 1부터 10까지의 숫자가 하나씩 적힌 열 장의 카드로 ‘게임’을 한다. 게임은 총 열 번의 ‘라운드’로 구성되고, 각 라운드 마다 자신이 가지고 있는 카드 중 하나를 제시하고, 한 번 제시한 카드는 버린다. 게임 승패는 다음과 같이 결정된다.
- 각 라운드는 더 높은 숫자를 제시한 사람이 승리하고, 제시한 숫자가 같은 경우는 비긴다.
- 열 번의 라운드에서 더 많은 라운드를 승리한 사람이 게임을 승리하고, 승리한 라운드 횟수가 동일한 경우 비긴다.
다음은 게임의 한 예로, 각 라운드마다 A와 B가 제시한 카드의 숫자와 각 라운드의 승자를 보여준다. (비긴 라운드는 D로 표시함)
A는 5번의 라운드에서 승리하고 B는 4번의 라운드에서 승리하였으므로, 이 게임은 A가 승리한다.
라운드 순서대로 A와 B가 제시한 카드의 숫자가 주어졌을 때, 게임의 승자를 판단하는 프로그램을 작성하시오.
입력
첫 번째 줄에는 A가 제시한 카드의 숫자 10개가 라운드 순서대로 주어지고, 두 번째 줄에는 B가 제시한 카드의 숫자 10개가 라운드 순서대로 주어진다.
출력
게임의 승패가 결정되는 경우 승리한 사람을 출력하고, 비기는 경우에는 D를 출력한다.
예제 입력 16 7 5 1 4 10 2 3 8 9
1 10 2 9 4 8 3 7 5 6 |
예제 출력 1A
|
예제 입력 21 2 3 4 5 6 7 8 9 10
5 4 3 2 1 10 9 8 7 6 |
예제 출력 2D
|
풀이
각 숫자를 비교하여 승리한 횟수를 기록한다.
같다면 D를, 아니라면 둘 중 더 큰 것을 출력한다.
s1 = list(map(int,input().split()))
s2 = list(map(int,input().split()))
a,b = 0,0
for i in range(10):
if s1[i] > s2[i]:
a+=1
elif s1[i] < s2[i]:
b+=1
print('A' if a>b else 'B' if a<b else 'D')
반응형
'알고리즘 연습 > 구현, 문자열' 카테고리의 다른 글
[🥉2 / 백준 1408 / 파이썬] 24 (0) | 2022.09.23 |
---|---|
[🥉1 / 백준 10823 / 파이썬] 더하기 2 (0) | 2022.08.05 |
[🥉2 / 백준 5128 / 파이썬] 알파벳 거리 (0) | 2022.06.06 |
[🥈4 / 백준 14394 / 파이썬] 9-퍼즐 (0) | 2022.05.25 |
[🥉2 / 백준 10093 / 파이썬] 숫자 (0) | 2022.05.22 |