상상쓰

[백준] 카드 섞기 본문

Coding Test

[백준] 카드 섞기

상상쓰 2022. 3. 5. 23:36

https://www.acmicpc.net/problem/1091

 

1091번: 카드 섞기

지민이는 카지노의 딜러이고, 지금 3명의 플레이어(0, 1, 2)가 있다. 이 게임은 N개의 카드를 이용한다. (0 ~ N-1번) 일단 지민이는 카드를 몇 번 섞은 다음에, 그것을 플레이어들에게 나누어 준다. 0

www.acmicpc.net

 

문제만 이해하면 어렵지 않게 풀 수 있다.

좋은 풀이는 아닌지만 하라는 대로 하면 풀린다.

 

import sys

N = int(sys.stdin.readline())
P = list(map(int, sys.stdin.readline().split()))
S = list(map(int, sys.stdin.readline().split()))
result = []
mix = [i for i in range(N)]
answer = 0

for i in range(N):
    result.append(P[i])

while True:
    t = False
    
    for i in range(N):
        if mix[i] % 3 != result[i]:
            answer += 1
            temp = []
            
            for j in range(N):
                if S[mix[j]] != j:
                    t = True
        
                temp.append(S[mix[j]])
            
            mix = temp
            
            break
    else:
        break
           
    if not t:
        answer = -1
        break

print(answer)

'Coding Test' 카테고리의 다른 글

[백준] 동전 0  (0) 2022.03.29
[프로그래머스] 파괴되지 않은 건물  (0) 2022.03.24
[백준] 숫자고르기  (0) 2022.02.27
[프로그래머스] 양궁대회  (0) 2022.02.20
[프로그래머스] 주차 요금 계산  (0) 2022.02.12
Comments