[Boj문제풀이]

[Boj/백준] 18115 Python

ki7348 2021. 9. 10. 15:36

문제출처: https://www.acmicpc.net/problem/18115

 

18115번: 카드 놓기

수현이는 카드 기술을 연습하고 있다. 수현이의 손에 들린 카드를 하나씩 내려놓아 바닥에 쌓으려고 한다. 수현이가 쓸 수 있는 기술은 다음 3가지다. 제일 위의 카드 1장을 바닥에 내려놓는다.

www.acmicpc.net

 

 

1. 문제 접근 방식

먼저 입력값을 reverse한다. 그리고 덱을 순환하면서 1이면 결과덱의 앞에 삽입하고 2면 결과덱의 두번째에 삽입하고 3이면 결과덱의 마지막에 삽입하는 것을 반복한다.

 

 

2. 내가 푼 코드

import sys
from collections import deque

case = int(sys.stdin.readline())

queue = deque(map(int,sys.stdin.readline().split()))
queue.reverse()
index = 1
result = deque()


for i in queue: 
    if i == 1:
        result.appendleft(index)
    elif i == 2:
        temp = result.popleft()
        result.appendleft(index)
        result.appendleft(temp)
    else:
        result.append(index)

    index+=1
            

print(*result)

 

 

3. 결과 및 느낀점

처음엔 풀기 막막했는데 기술을 reverse해서 풀자는 생각 후에 풀 수 있었다.

'[Boj문제풀이]' 카테고리의 다른 글

[Boj/백준] 1927 11279 11286 Python  (0) 2021.09.13
[Boj/백준] 5464 Python  (0) 2021.09.11
[Boj/백준] 13417 Python  (0) 2021.09.08
[Boj/백준] 15828 Python  (0) 2021.09.07
[Boj/백준] 10845 Python  (0) 2021.09.06