[WEEK02] 백준 2-3. 스택

장서영·2023년 4월 17일
0

백준 알고리즘

목록 보기
1/6

10828

시도한 로직

  • 큐를 리스트로 만든다.
  • 내장함수를 사용하겠다.
  • pos를 하나 둬서, 맨 처음 거를 저장하겠다.
  • push -> append
  • pop -> pop(pos)하고, pos 한 칸 뒤로 이동
  • size -> len(리스트) - pos
  • empty -> size()값이 0d이면 1, 아니면 0 출력
  • front -> 리스트[pos] 출력 (if size가 0이라면 01)
  • back -> len(리스트) - 1 인덱스의 원소를 출력
import sys

queue = []
front = 0

N = int(sys.stdin.readline())
for _ in range(N):
    instruction = list(sys.stdin.readline().split())
    if instruction[0] == 'push':
        queue.append(instruction[1])
    elif instruction[0] == 'pop':
        if front < 1:
            print(-1)
        else:
            print(queue[front])
            front += 1
    elif instruction[0] == 'size':
        print(len(queue) - front)
    elif instruction[0] == 'empty':
        if (len(queue) - front): # 0이 아니면
            print(0)
        else:
            print(1)
    elif instruction[0] == 'front':
        if (len(queue) - front):
            print(-1)
        else:
            print(queue[front])
    elif instruction[0] == 'back':
        if (len(queue) - front):
            print(-1)
        else:
            print(queue[len(queue) - 1])

막힌 부분 : 런타임 에러가 떴다 + 스택은 이미 있는 모듈을 써야 겠다.

from collections import deque
import sys

input = sys.stdin.readline

n = int(input())

q = deque([])

for _ in range(n):
    query = input().split()
    if query[0] == 'push':
            q.append(query[1])
    elif query[0] == 'pop':
        if len(q):
            print(q.popleft())
        else:
            print(-1)
    elif query[0] == 'size':
        print(len(q))
    elif query[0] == 'empty':
        if len(q):
            print(0)
        else:
            print(1)
    elif query[0] == 'front':
        if len(q):
            print(q[0])
        else:
            print(-1)
    elif query[0] == 'back':
        if len(q):
            print(q[-1])
        else:
            print(-1)
  • 디큐를 사용해 구현함
  • ★ 미리 배열을 할당하는 게 좋다!! arr = [0] * 200000

10773

9012

17608

2493

2504

2812


10000

(아직 해결하지 못 함)

profile
하루살이 개발자

0개의 댓글