출처 : 반크_설과 대보름
문제]
A와 B가 주사위 게임을 합니다. 주머니 속에는 빨간색, 노란색, 파란색 주사위가 있습니다.
주사위는 A와 B가 번갈아 뽑습니다.
뽑은 주사위를 A와 B가 번갈아 던집니다.
이때, 빨간색 주사위가 나오면 게임을 멈춥니다.
노란색 주사위가 나오면 주사위 숫자만큼 값을 누적합니다.
만약 주사위의 값이 1~6 사이가 아니라면 주사위를 다시 던집니다.
파란색 주사위가 나오면 주사위 숫자만큼 값을 뺍니다.
만약 주사위의 값이 1~6 사이가 아니라면 주사위를 다시 던집니다.
A와 B 중 누적값이 30을 넘으면 게임을 중지합니다.
A와 B의 누적값을 출력하고 어느 학생이 승리했는지 알려줍니다.
(누적값이 작은 학생이 승리합니다.)
[입력 예시 1]
yellow
1
2
yellow
6
5
yellow
3
4
blue
1
2
Red
[출력 예시 1]
totalA = 9
totalB = 9
A and B are winners!
[입력 예시 2]
yellow
4
7
5
1
blue
1
3
red
[출력 예시 2]
totalA = 4
totalB = -2
B is a winner!
[입력 예시 3]
yellow
1
6
yellow
3
6
yellow
5
6
yellow
1
6
yellow
4
5
yellow
6
6
[출력 예시 3]
totalA = 20
totalB = 35
A is a winner!
참고풀이]
totalA=0
totalB=0
while True:
#A,B가 주사위 색을 선택한다.
ybr=input()
if ybr=="yellow":
while True:
A=int(input())
if A<1 or A>6: continue
B=int(input())
if B<1 or B>6: continue
if (1<=A<=6) and (1<=B<=6):
break
totalA+=A
totalB+=B
elif ybr=="blue":
while True:
A=int(input())
if A<1 or A>6: continue
B=int(input())
if B<1 or B>6: continue
if (1<=A<=6) and (1<=B<=6):
break
totalA-=A
totalB-=B
elif ybr=="Red" or ybr=="red":
break
if totalA>30 or totalB>30: break
print("totalA =",totalA)
print("totalB =",totalB)
if totalA<totalB:
print("A is a winner!")
elif totalA>totalB:
print("B is a winner!")
else:
print("A and B are winners!")
참고풀이 결과]
대한민국의 아름다운 영토, 독도의 겨울
'프로그램 > Python 1000제' 카테고리의 다른 글
Python 335제] NCP Nextop Lv.1 나머지 (0) | 2025.03.03 |
---|---|
Python 334제] NCP Nextop Lv.1 사칙연산 (0) | 2025.03.03 |
Python 333제] 2015년 한국정보올림피아드 시˙도 지역본선 초등부 문제. 쇠막대기 (0) | 2025.02.02 |
Pytyon 332제] 파이썬 EXPRESS CHAPTER 6. 도전문제 (2) p296 (0) | 2025.01.30 |
Pytyon 331제] 파이썬 EXPRESS CHAPTER 6. 도전문제 (1) p296 (0) | 2025.01.30 |
댓글