[백준] 10845 - 큐 (Python)
문제
제출 코드
import sys
testCase = int(sys.stdin.readline())
queue = []
result = []
for i in range(testCase):
    line = sys.stdin.readline().split()
    if line[0] == 'push':
        queue.append(line[1]) 
    if line[0] == 'pop':
        if len(queue) == 0:
            result.append(-1)
        else:
            result.append(queue.pop(0))
    if line[0] == 'size':
        result.append(len(queue))
    if line[0] == 'empty':
        if len(queue) == 0:
            result.append(1)
        else:
            result.append(0)
 
    if line[0] == 'front':
        if len(queue) == 0:
            result.append(-1)
        else:
            result.append(queue[0])
    if line[0] == 'back':
        if len(queue) == 0:
            result.append(-1)
        else:
            result.append(queue[-1])
for i in result:
    print(i)
결과

정리
개념
Queue는 다음과 같이 먼저 넣은 데이터가 먼저 나오는 FIFO(First-In, First-Out)구조이다.

주석있는 코드
import sys
testCase = int(sys.stdin.readline())
queue = []
result = []
for i in range(testCase):
    line = sys.stdin.readline().split()
    # push일때
    # push X : 정수 X를 큐에 넣는 연산
    if line[0] == 'push':
        queue.append(line[1])  # append() : 리스트의 맨 마지막에 요소 추가
    # pop일때
    # 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력 & 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력
    if line[0] == 'pop':
        if len(queue) == 0:
            result.append(-1)
        else:
            result.append(queue.pop(0))  # pop(0): 리스트에서 주어진 위치(0)에 있는 요소를 삭제하고 그 요소를 반환
    # size일때
    # 큐에 들어있는 정수의 개수를 출력
    if line[0] == 'size':
        result.append(len(queue))
    # empty일때
    # 큐가 비어있으면 1, 아니면 0을 출력
    if line[0] == 'empty':
        if len(queue) == 0:
            result.append(1)
        else:
            result.append(0)
    # front일때
    # 큐의 가장 앞에 있는 정수를 출력 & 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력
    if line[0] == 'front':
        if len(queue) == 0:
            result.append(-1)
        else:
            result.append(queue[0])
    # back일때
    # 큐의 가장 뒤에 있는 정수를 출력 & 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력
    if line[0] == 'back':
        if len(queue) == 0:
            result.append(-1)
        else:
            result.append(queue[-1]) # 리스트의 맨 마지막 요소를 제거하지 않고 가져오기만 할 때에는 [-1] 사용
for i in result:
    print(i)
느낀점
10828번 Stack을 풀때랑 거의 똑같이 구현했지만 결과를 한꺼번에 출력하는 것만 다르게 구현했다. 이 문제에서는 아마 바로바로 출력해도 시간초과가 안뜰꺼 같은데 다른 문제들에서는 바로바로 출력하면 시간초과가 뜰 때가 있어서 그냥 결과를 한번에 출력하는 코딩습관을 길러보려고 한다. ><
Author And Source
이 문제에 관하여([백준] 10845 - 큐 (Python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@alsdud5766/백준-10845-큐-Python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)