alpyrithm_알파이리즘

[알고리즘][Python] 백준(BOJ) 2161 카드1_파이썬 본문

Algorithm/백준 알고리즘_Python

[알고리즘][Python] 백준(BOJ) 2161 카드1_파이썬

알파이 2020. 11. 20. 08:36

 

2161 카드1    www.acmicpc.net/problem/2161

 

2161번: 카드1

N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가

www.acmicpc.net

 

 

 

문제 풀기 전 공부할 것 : 구현, 자료 구조, 시뮬레이션, 덱, 큐

 

 

 

 

 

 

 

풀이 1

<내용>

  • while문으로 cards에 카드가 남을 때까지 카드를 버리고, 제일 아래로 옮기는 작업을 반복한다.

 

<코드>

from collections import deque

n = int(input())
cards = deque(list(range(1, n+1)))
res = []
while cards:
    card = cards.popleft()
    res.append(card)
    if cards:
        card = cards.popleft()
        cards.append(card)
        
print(*res)

 

 

 

 

 

 

 

 

 

 

 

 

풀이 2

<내용>

  • deque 사용하지 않고 해결하기

 

<코드>

n = int(input())
cards = list(range(1, n+1))
res = []
while len(cards) > 1:
    res.append(cards[0])
    cards = cards[2:] + [cards[1]]
res.append(cards[0])
        
print(*res)

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형
Comments