취준/코딩테스트

백준 28279 (python): 덱2

린구 2024. 6. 25. 14:25
반응형
import sys
from collections import deque

N = int(input())
q = deque([])
for _ in range(N):
    cmd = list(map(int, sys.stdin.readline().split()))
    if len(cmd) == 2:
        if cmd[0] == 1:
            q.appendleft(cmd[1])
        elif cmd[0] == 2:
            q.append(cmd[1])
    else:
        if q:
            if cmd[0] == 3:
                print(q.popleft())
            elif cmd[0] == 4:
                print(q.pop())
            elif cmd[0] == 5:
                print(len(q))
            elif cmd[0] == 6:
                print(0)
            elif cmd[0] == 7:
                print(q[0])
            else:
                print(q[-1])
        else:
            if cmd[0] == 5:
                print(0)
            elif cmd[0] == 6:
                print(1)
            else:
                print(-1)

 

처음에 이렇게 풀었는데 len(cmd)를 굳이 나눌 필요 없었다.

난 바보다!

 

import sys
from collections import deque

N = int(input())
q = deque([])
for _ in range(N):
    cmd = list(map(int, sys.stdin.readline().split()))
    if cmd[0] == 1:
        q.appendleft(cmd[1])
    elif cmd[0] == 2:
        q.append(cmd[1])
    elif cmd[0] == 3:
        print(q.popleft() if q else -1)
    elif cmd[0] == 4:
        print(q.pop() if q else -1)
    elif cmd[0] == 5:
        print(len(q))
    elif cmd[0] == 6:
        print(0 if q else 1)
    elif cmd[0] == 7:
        print(q[0] if q else -1)
    elif cmd[0] == 8:
        print(q[-1] if q else -1)

 

그리고 print 문에 if else 문을 넣을 수 있는 것을 알게 되었다!

대박적.

앞으로 이렇게 풀어야지

 

 

반응형