스택 11

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

Java으로 구현한 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 import java.util.*; public class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); int n = s..

백준(JAVA) 9012번 괄호 풀이

Java으로 구현한 9012번 괄호 문제 풀이입니다. https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 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..

백준(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) 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..

백준(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..

백준(Python) 9012번 괄호 풀이

Python으로 구현한 9012번 괄호 문제 풀이입니다. https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net t = int(input()) for _ in range(t) : data = list(input()) open = 0 for d in data : if d == '(' : open += 1 else : open -= 1 if open 0..

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

Python으로 구현한 1406번 에디터 문제 풀이입니다. https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net import sys input = sys.stdin.readline data = list(input().rstrip()) temp = [] n = int(input()) for _ in range(n) : order = list(input().split()) if order[0] == 'L' : # 커서를 왼쪽으로 한 칸 이동 if data..

백준(Python) 10828번 스택 풀이

Python으로 구현한 10828번 스택 문제 풀이입니다. https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net import sys input = sys.stdin.readline n = int(input()) q = [] for _ in range(n) : order = list(input().split()) if len(order) == 2 : # push X 일경우 insert_value = int(order[1]) q.app..

백준(Python) 10773번 제로 풀이

Python으로 구현한 10773번 제로 문제 풀이입니다. https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net k = int(input()) data = [] for i in range(k) : n = int(input()) if n == 0 : data.pop() else : data.append(n) print(sum(data)) 반복문을 통해 k개의 정수를 하나씩 입력받고 입력받은 수가 0이라면 data 리스..

재귀 함수 (Recursive Function)

[재귀 함수란?] 자기 자신을 다시 호출하는 함수이다. [단순한 형태의 재귀 함수 예제] def recursive_function() : print('재귀 함수 호출') recursive_function() recursive_function() [재귀 함수의 종료 조건] 재귀 함수를 문제 풀이에서 사용할 때에는 재귀 함수의 종료 조건을 반드시 명시해야 한다. 종료 조건을 제대로 명시하지 않으면 함수가 무한히 호출될 수 있다. [종료 조건을 포함한 재귀 함수 예제] def recursive_function(i) : # 100번째 호출 했을 때 종료 if i == 100 : return print(i, '번째 재귀함수에서', i + 1, '번째 재귀함수를 호출') recursive_function(i + 1..