반응형
그냥 하라는대로 하면 되는문제인데 인덱스 장난이 심한 문제.
그래서 코딩에서 가장 중요한건 차분히 침착하게 푸는것 이라는것을 다시한번 상기시키는 문제.
침착해 침착해
from copy import deepcopy
N=int(input())
P=list(map(int,input().split()))
S=list(map(int,input().split()))
#카드덱
dq=[i for i in range(N)]
#현재 플레이어상태
player=[[] for i in range(3)]
for i in range(N):
p=i%3
player[p].append(i)
ini=deepcopy(player)
#목표값
target=[[] for i in range(3)]
for i in range(N):
target[P[i]].append(i)
ans=0
while(1):
if target==player:
break
if ans>=1 and player==ini:
ans=-1
break
ans+=1
#섞기
temp = [-1 for i in range(N)]
for i in range(N):
c=dq[i]
temp[S[i]]=c
for i in range(N):
dq[i]=temp[i]
#나눠주기
tempPlayer=[[] for i in range(3)]
for i in range(N):
p=i%3
tempPlayer[p].append(dq[i])
for i in range(3):
tempPlayer[i].sort()
player=deepcopy(tempPlayer)
print(ans)
반응형