자료 구조 42

백준(JAVA) 1406번 에디터 풀이

Java으로 구현한 1406번 에디터 문제 풀이입니다. https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Buf..

백준(JAVA) 10866번 덱 풀이

Java으로 구현한 10866번 덱 문제 풀이입니다. https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net import java.io.*; import java.util.*; public class Solution_m { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(S..

백준(JAVA) 10845번 큐 풀이

Java으로 구현한 10845번 큐 문제 풀이입니다. https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net import java.util.*; import java.io.*; public class Solution_m { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(S..

백준(JAVA) 10828번 스택 풀이

Java으로 구현한 10828번 스택 문제 풀이입니다. https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net import java.util.*; import java.io.*; public class Main { static List data; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new Input..

백준(JAVA) 10815번 숫자 카드 풀이

Java으로 구현한 10815번 숫자 카드 문제 풀이입니다. https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Arrays; import java.util..

백준(JAVA) 1920번 수 찾기 풀이

Java으로 구현한 1920번 수 찾기 문제 풀이입니다. https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net import java.util.*; public class Main { static int[] target; public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); int n = ..

백준(Python) 5430번 AC 풀이

Python으로 구현한 5430번 AC 문제 풀이입니다. https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net from collections import deque t = int(input()) for _ in range(t) : p = input() n = int(input()) data = input()[1:-1].split(',') q = deque(data) if n == 0 : q = [] reverse = 0 flag = 0 for value in p : if value == 'R' : reve..

백준(Python) 1966번 프린터 큐 풀이

Python으로 구현한 1966번 프린터 큐 문제 풀이입니다. https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net t = int(input()) for _ in range(t) : n, m = map(int, input().split()) priority = list(map(int, input().split())) check = [0 for _ in range(n)] check[m] = 1 count = 0 while True : if priority..

백준(Python) 1158번 요세푸스 문제 풀이

Python으로 구현한 1158번 요세푸스 문제 문제 풀이입니다. https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net n, k = map(int, input().split()) data = [i for i in range(1, n + 1)] index = 0 result = [] for _ in range(n) : index += (k - 1) if index >= len(data) : index %= len(data) result.append(str(data[index])) data.pop(index) print('') 1. 1부터 n까..

백준(Python) 1874번 스택 수열 풀이

Python으로 구현한 1874번 스택 수열 문제 풀이입니다. https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net n = int(input()) count = 0 stack = [] result = [] flag = True for _ in range(n) : data = int(input()) while count < data : count += 1 stack.ap..