(class 2)

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

for i in range(n):
    cmd=input().split()

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

<코드 설명>

먼저 명령어의 개수인 n을 입력받았다. 그리고 이 n만큼 for문으로 반복시켜주었다.

for문 내에서 cmd에 명령어를 입력받도록 하였고, split을 통해 한번에 여러개를 입력받았다.

 

cmd[0]이 push일 때,  queue에 cmd[1]값을 넣어주었다.

cmd[0]이 pop일 때, queue가 empty 상태일 때 (queue의 길이가 0일때) -1을 출력해주었고, 그렇지 않으면 0번째 원소를 pop해주었다.

cmd[0]이 size일 때, queue의 길이를 출력해주었다.

cmd[0]이 empty일 때, queue의 길이가 0이면 1을 출력해주고 그렇지 않으면 0을 출력해주었다.

cmd[0]이 front일 때, queue가 empty 상태일 때 (queue의 길이가 0일때) -1을 출력해주고, 그렇지 않으면 queue의 첫번째 원소인 0번째 원소를 출력해주었다.

cmd[0]이 back일 때, queue가 empty 상태일 때 (queue의 길이가 0일때) -1을 출력해주고, 그렇지 않으면 queue의 마지막 원소인 -1번째 원소를 출력해주었다.

 

<실행결과>

'Algorithm > BOJ' 카테고리의 다른 글

[BoJ] 1120 문자열  (0) 2022.05.01
[BOJ] 10866 덱  (0) 2022.04.29
[BoJ] 4673 셀프 넘버  (0) 2022.04.03
[BOJ] 1929 소수 구하기  (0) 2022.04.02
[BOJ] 10828 스택  (0) 2022.04.02

+ Recent posts