[백준] 큐 10845번 파이썬 Python 자료구조

Jeony·2021년 9월 30일
0

백준

목록 보기
6/25
post-thumbnail

📌문제 접근

큐를 파이썬에서는 리스트로 표현할 수 있다.
반복문 안에서는 input()보다 sys.stdin.readline()을 사용해야 시간초과 발생 확률 Down.

input()과 sys.stdin.readline()의 차이

📌내가 작성한 코드

import sys

n = int(input())
queue = []

for i in range(n):
    command = sys.stdin.readline().split()

    if command[0] == "push":
        queue.append(command[1])
    elif command[0] == "pop":
        if queue:
            print(queue[0])
            queue.pop(0)
        else:
            print("-1")
    elif command[0] == "size":
        print(len(queue))
    elif command[0] == "empty":
        if not queue:
            print("1")
        else:
            print("0")
    elif command[0] == "front":
        if queue:
            print(queue[0])
        else:
            print("-1")
    elif command[0] == "back":
        if queue:
            print(queue[len(queue)-1])
        else:
            print("-1")

📌풀이

push
push는 큐의 규칙 상 마치 사람들이 줄을 서듯이 맨 끝에 되어야한다.
append()는 리스트 맨 마지막 오른쪽에 값을 추가해준다.

pop
pop은 큐의 규칙 상 줄에서 가장 먼저 줄을 선 사람부터 빠지듯이 맨 앞 첫번 째가 빠져야한다.
pop()의 괄호 안에 인덱스를 넣어 pop(0)이라고 하면 맨 첫번 째인 0번 째가 빠진다.
만약 큐 리스트에 값이 없다면 뺄 수가 없다.

back
만약 큐 리스트에 값이 들어있으면 맨 마지막 값을 출력하는데 큐 리스트의 길이를 len()으로 구하고 리스트는 0부터 시작이고 len()의 값은 1부터 시작이니까 -1을 해줘서 맨 마지막 값을 출력한다.

profile
알고리즘으로 문제를 해결하다가 포기함

0개의 댓글