스택(13)
-
백준 9012 파이썬
백준 9012 - 괄호 문제 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 답안 코드 : T = int(input()) for _ in range(T): parentheses_string = input() stack = [] # 스택을 사용하여 괄호의 짝을 확인하기 위한 빈 리스트 생성 # 괄호 문자열을 한 글자씩 확인 for char in parentheses_string: if char == "(": # 여는..
2024.05.01 -
백준 10773 파이썬
백준 10773 - 제로문제https://www.acmicpc.net/problem/10773 10773번: 제로첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경www.acmicpc.net 답안 코드 : import sysstack = []n = int(sys.stdin.readline())for _ in range(n): command = sys.stdin.readline().split() if command[0] == "0": stack.pop() else: stack.append(..
2024.04.30 -
백준 28278 파이썬 list로 스택 구현
백준 28278 - 스택 2문제https://www.acmicpc.net/problem/28278 28278번: 스택 2첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력을 요구하는 명령은 하나 이상 주어진다.www.acmicpc.net답안 코드 :# 스택의 개념을 익히고 실습하는 문제import sysstack = []n = int(sys.stdin.readline())for _ in range(n): command = sys.stdin.readline().split() if command[0] == "1": stack.append(command[1]) elif command[0] == "2": ..
2024.04.29 -
백준 11286 파이썬 우선순위 큐 sys.stdout.write
백준 11286 - 절댓값 힙 문제 https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 답안 코드 : from queue import PriorityQueue import sys print = sys.stdout.write input = sys.stdin.readline N = int(input()) myQueue = PriorityQueue() for i in range(N): request = int(input()) if ..
2024.02.16 -
백준 17298 파이썬 , 스택의 후입선출 성질 이용
백준 17298 : 오큰수 문제 https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 답안 코드 : import sys n = int(sys.stdin.readline()) A = list(map(int, sys.stdin.readline().split())) ans = [-1] * n myStack = [] for i in range(n): while myStack and A[myStack[-1]] < A[i]: ans[myStack.pop()] = A[i]..
2024.02.13 -
백준 1847 파이썬 , 스택의 원리 이용
백준 1847 : 스택 수열 문제 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 sys N = int(sys.stdin.readline()) A = [0] * N for i in range(N): A[i] = int(sys.stdin.readline()) stack = [] num = 1 result = True answer = [] ..
2024.02.11