문제풀이/구현
[파이썬] [구현] 백준 17281 야구
승무_
2023. 4. 10. 20:11
문제
https://www.acmicpc.net/problem/17281
17281번: ⚾
⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝 동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종
www.acmicpc.net
코드
from itertools import permutations
n=int(input())
array=[list(map(int, input().split())) for _ in range(n)]
seq=list(permutations(range(1,9)))
answer=0
for i in seq:
result=0
# temp -> 타자 순서
temp=list(i)
# 1번 선수 4번 타자로
temp.insert(3,0)
nowPlayer=0
for j in range(n):
outCount = 0
b1,b2,b3=0,0,0
while 1:
if outCount>2:
break
# 아웃
if array[j][temp[nowPlayer]]==0:
outCount+=1
elif array[j][temp[nowPlayer]] == 1:
result+=b3
b1,b2,b3=1,b1,b2
elif array[j][temp[nowPlayer]] == 2:
result+=(b2+b3)
b1,b2,b3=0,1,b1
elif array[j][temp[nowPlayer]] == 3:
result+=(b1+b2+b3)
b1,b2,b3=0,0,1
else:
result+=(b1+b2+b3+1)
b1,b2,b3=0,0,0
nowPlayer+=1
nowPlayer%=9
answer=max(answer,result)
print(answer)