매일 Algorithm

신재원·2023년 6월 10일
1

Algorithm

목록 보기
141/243

백준 10866번

import java.util.Deque;
import java.util.LinkedList;
import java.util.Scanner;

public class problem462 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int size = in.nextInt();

        // Queue의 단방향을 극복하기위한 Deque
        Deque<Integer> deque = new LinkedList<>();
        StringBuilder output = new StringBuilder();

        for (int i = 0; i < size; i++) {
            String compare = in.next();
            switch (compare) {
                case "push_front":
                    // deque의 맨 앞의 값 추가
                    deque.addFirst(in.nextInt());
                    break;
                case "push_back":
                    // deque의 맨 뒤의 값 추가
                    deque.addLast(in.nextInt());
                    break;
                case "pop_front":
                    if (deque.isEmpty()) {
                        output.append("-1\n");
                    } else {
                        output.append(deque.removeFirst()).append("\n");
                    }
                    break;
                case "pop_back":
                    if (deque.isEmpty()) {
                        output.append("-1\n");
                    } else {
                        output.append(deque.removeLast()).append("\n");
                    }
                    break;
                case "size":
                    output.append(deque.size()).append("\n");
                    break;
                case "empty":
                    if (deque.isEmpty()) {
                        output.append("1\n");
                    } else {
                        output.append("0\n");
                    }
                    break;
                case "front":
                    if (deque.isEmpty()) {
                        output.append("-1\n");
                    } else {
                        output.append(deque.peekFirst()).append("\n");
                    }
                    break;

                case "back":
                    if (deque.isEmpty()) {
                        output.append("-1\n");
                    } else {
                        output.append(deque.peekLast()).append("\n");
                    }
                    break;
            }
        }
        System.out.println(output.toString());
    }
}

백준 10799번

import java.util.Scanner;
import java.util.Stack;

public class problem463 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int result = 0;
        String input = in.next();
        Stack<Character> stack = new Stack<>();

        for (int i = 0; i < input.length(); i++) {
            char ch = input.charAt(i);
            if (ch == '(') {
                stack.push(ch);
            } else {
                stack.pop();
                if (input.charAt(i - 1) == '(') {
                    result += stack.size();
                }
                // ')'가 연속으로 나올 경우
                else {
                    result++;
                }
            }
        }
        System.out.println(result);
    }
}

백준 10430번

import java.util.Scanner;

public class problem464 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        int b = in.nextInt();
        int c = in.nextInt();

        System.out.println((a + b) % c);
        System.out.println(((a % c) + (b % c)) % c);
        System.out.println((a * b) % c);
        System.out.println(((a % c) * (b % c)) % c);
    }
}

0개의 댓글