728x90
혼자 하는 윷놀이
문제
오전 4시, 민재는 윷놀이를 하고 싶어졌다. 하지만 다들 자는 시간이라 윷놀이를 같이 할 사람은 없었다.
민재는 윷놀이를 혼자 할 수 있는 방법을 생각해냈다.
혼자 하는 윷놀이에 적용되는 규칙은 다음과 같다.
- 처음에 말은 윷판의 오른쪽 아래에 위치한다.
- 열 번의 차례 안에 말 하나가 완주하면 민재가 승리한다.
- 차례 한 번에는 윷가락 네 개를 던진 후:
- 뒷면이 하나인 경우 말을 한 칸 전진시킨다.
- 뒷면이 둘인 경우 말을 두 칸 전진시킨다.
- 뒷면이 셋인 경우 말을 세 칸 전진시킨다.
- 모두 뒷면인 경우 말을 네 칸 전진시킨 뒤, 윷을 추가로 던진다.
- 모두 앞면인 경우 말을 다섯 칸 전진시킨 뒤, 윷을 추가로 던진다.
- 윷판을 정해진 경로로 한 바퀴를 돌아 윷판의 오른쪽 아래에 도착한 뒤 한 칸 더 움직여야 완주할 수 있다.
- 혼자 하나의 말로 하는 게임이므로 상대 말을 잡거나 자신의 말을 업는 경우는 없다.
- 일반적인 윷놀이의 낙과 뒷도 등의 룰은 고려하지 않는다.
게임이 진행될 윷놀이판은 다음과 같다.
윷판에서 말이 갈 수 있는 길은 그림과 같이 네 가지이다.
빈 원으로 표시된 위치에 말이 놓이면 상대적으로 짧은 길로 가야한다. 그 위치에 놓이지 않는다면 상대적으로 먼 길로 가야 한다.
민재의 승리 여부를 출력하는 프로그램을 작성하시오.
입력
첫째 줄부터 민재가 윷가락을 어떻게 던졌는지 순서대로 주어진다.
각 줄에는 0과 1로 이루어진 길이가 4 인 문자열이 주어진다. 0은 윷가락 뒷면, 1은 윷가락 앞면을 나타낸다.
민재는 완주하더라도 10 턴을 모두 진행할 때까지 윷을 계속 던진다. 단, 50 줄을 초과하는 입력은 주어지지 않는다.
마지막 입력은 도, 개, 걸 중 하나로 주어진다.
출력
민재가 혼자 하는 윷놀이에서 이겼다면 WIN, 졌다면 LOSE를 출력한다.
분기가 많은 문제라 분기를 생각해주면 되었다.
'''
혼자 하는 윷놀이
'''
import sys
input = sys.stdin.readline
now = 0
goal = 21
cnt = 10
flag_5 = False
goal_flag = False
while cnt:
yut = input()
zero_cnt = yut.count('0')
if zero_cnt == 0:
now += 5
elif zero_cnt == 4:
now += zero_cnt
else:
now += zero_cnt
cnt -= 1
if now == 5:
flag_5 = True
goal = 17
elif now == 8 and flag_5:
goal = 12
elif now == 10 and not flag_5:
goal = 17
if now >= goal:
goal_flag = True
if goal_flag:
print("WIN")
else:
print("LOSE")
'@@@ 알고리즘 > 백준 스터디' 카테고리의 다른 글
백준9270(페그 솔리테어) - 해결 (0) | 2022.05.29 |
---|---|
백준23322(초콜릿 뺏어 먹기) (0) | 2022.04.29 |
백준7983(내일 할거야) - python 해결 (0) | 2022.04.17 |
백준16569(화산쇄설류) - python 해결 (0) | 2022.04.05 |
백준16196(중국 신분증 번호) - python 해결 (0) | 2022.03.29 |