티스토리 뷰

반응형

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

 

10866번: 덱

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

 


⊙ 문제

⊙ 입력

⊙ 출력

⊙ 예제 입출력

⊙ 알고리즘 분류

  • 자료 구조

 


 

⊙ 문제 접근 과정

 

 

if문을 사용해주면 된다.

 


 

⊙ 문제 풀이

 

from collections import deque
import sys

N = int(sys.stdin.readline())
q = deque()

def empty():
    if len(q) == 0:
        return 1
    else:
        return 0
        
def size():
    return len(q)

for i in range(N):
    inputString = list(sys.stdin.readline().split())

    if inputString[0] == 'push_front':
        q.appendleft(inputString[1])

    elif inputString[0] == 'push_back':
        q.append(inputString[1])

    elif inputString[0] == 'pop_front':
        if empty() == 1:
            print("-1")
        else:
            tmp = q.popleft()
            print(tmp)

    elif inputString[0] == 'pop_back':
        if empty() == 1:
            print("-1")
        else:
            tmp = q.pop()
            print(tmp)

    elif inputString[0] == 'front':
        if empty() == 1:
            print("-1")
        else:
            print(q[0])

    elif inputString[0] == 'back':
        if empty() == 1:
            print("-1")
        else:
            print(q[len(q)-1])

    elif inputString[0] == 'size':
        print(size())

    elif inputString[0] == 'empty':
        print(empty())

 


⊙ 결과

 


⊙ 마무리

 

 

NONE

 

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함