본문 바로가기

카테고리 없음

BAEKJOON(백준) 10866번 : 덱 JAVA / PYTHON CODE

 

 

JAVA CODE

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
import java.util.Deque;
import java.util.LinkedList;
 
public class Main {
 
	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
		Deque<Integer> q = new LinkedList<>();
		
		int N = Integer.parseInt(br.readLine());
		
		StringTokenizer command;
		
		while(N-- > 0) {
			command = new StringTokenizer(br.readLine(), " ");
			
			switch(command.nextToken()) {	
			
			case "push_front":
				q.offerFirst(Integer.parseInt(command.nextToken()));	
				break;
				
			case "push_back":
				q.offerLast(Integer.parseInt(command.nextToken()));	
				break;
			
			case "pop_front" :
				Integer item1 = q.pollFirst();	
				if(item1 == null) {
					sb.append(-1).append('\n');
				}
				else {
					sb.append(item1).append('\n');
				}
				break;
				
			case "pop_back" :
				Integer item2 = q.pollLast();	
				if(item2 == null) {
					sb.append(-1).append('\n');
				}
				else {
					sb.append(item2).append('\n');
				}
				break;
				
			case "size":	
				sb.append(q.size()).append('\n');
				break;
				
			case "empty":
				if(q.isEmpty()) {
					sb.append(1).append('\n');
				}
				else {
					sb.append(0).append('\n');
				}
				break;
				
			case "front":
				Integer ite = q.peek();
				if(ite == null) {
					sb.append(-1).append('\n');
				}
				else {
					sb.append(ite).append('\n');
				}
				break;
				
			case "back":
				Integer it = q.peekLast();	 
				if(it == null) {
					sb.append(-1).append('\n');
				}
				else {
					sb.append(it).append('\n');
				}
				break;
			}
		}
		System.out.println(sb);
	}
}

 

PYTHON CODE (Error)

import sys
from collections import deque

N =int(input())
queue = deque()
res = []

for _ in range(N):
    command = sys.stdin.readline().split(" ")
    if len(command) > 1:
        num = int(command[1])

    if command[0] == "push_front":
        queue.appendleft(num)

    elif command[0] == "push_back":
        queue.append(num)

    elif command[0] == "pop_front":
        if len(queue) == 0:
            res.append(-1)
        else:
            res.append(queue[0])
            queue.popleft()

    elif command[0] == "pop_back":
        if len(queue) == 0:
            res.append(-1)
        else:
            res.append(queue[len(queue)-1])
            queue.pop()

    elif command[0] == "size":
        res.append(len(queue))

    elif command[0] == "empty":
        if len(queue) == 0:
            res.append(1)
        else:
            res.append(0)

    elif command[0] == "front":
        if len(queue) == 0:
            res.append(-1)
        else:
            res.append(queue[0])

    elif command[0] == "back":
        if len(queue) == 0:
            res.append(-1)
        else:
            res.append(queue[len(queue)-1])

for i in range(len(res)):
    print(res[i])

 

 

PYTHON CODE(Answer)

from collections import deque
import sys

d = deque()
n = int(input())

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

    if command[0] == "push_front":
        d.appendleft(command[1])
    elif command[0] == "push_back":
        d.append(command[1])
    elif command[0] == "pop_front":
        if d:
            print(d[0])    
            d.popleft()
        else:
            print("-1")
    elif command[0] == "pop_back":
        if d:
            print(d[len(d) - 1])    
            d.pop()
        else:
            print("-1")
    elif command[0] == "size":
        print(len(d))
    elif command[0] == "empty":
        if d:
            print("0")
        else:
            print("1")
    elif command[0] == "front":
        if d:
            print(d[0])
        else:
            print("-1")
    elif command[0] == "back":
        if d:
            print(d[len(d) - 1])
        else:
            print("-1")