-
21315 완전탐색 블루트포스 ==> 다시풀기코테 대비 python/백준 2023. 1. 27. 21:34
https://www.acmicpc.net/problem/21315
21315번: 카드 섞기
마술사 영재는 카드 더미를 이용한 마술을 개발하였다. 카드들에는 1부터 N까지의 숫자가 적혀있으며 초기 상태에는 1이 맨 위에 있으며 N개의 카드가 번호 순서대로 쌓여있다. 영재는 마술을
www.acmicpc.net
from itertools import permutations import sys def input(): return sys.stdin.readline().rstrip() def shuffle(card1, card2, card3): card = card2 + card1 + card3 if len(card2) > 1: return shuffle(card2[:len(card2)//2] + card1, card2[len(card2)//2:], card3) else: card = card2 + card1 + card3 return card n = int(input()) correct_cards = list(map(int,input().split())) answer = [] orders = [i for i in range(1, 10)] + [i for i in range(1, 10)] for perm in permutations(orders, 2): if 2 ** max(perm)>=n: continue cards = [i for i in range(1, n+1)] for k in perm: card1 = [] card2 = cards[n-(2**k):] card3 = cards[:n-(2**k)] cards = shuffle(card1, card2, card3) if cards == correct_cards: answer = perm break print(' '.join(map(str, answer)))
'코테 대비 python > 백준' 카테고리의 다른 글
8393 1~n 합 (0) 2023.01.30 10950 함수만들기 (0) 2023.01.30 21278 bfs ==> 다시 풀어보기 (0) 2023.01.27 16987 dfs, 백트레킹 ==> 다시풀어보기 (0) 2023.01.27 1969 문자열, 구현 (0) 2023.01.27