728x90
반응형

스택 3

[파이썬] BOJ_9012(괄호)

문제 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 해설 처음엔 아무 생각 없이 '('의 개수와 ')'의 개수를 세서 같으면 YES, 다르면 NO를 출력했었는데 그러면 안된다. ')'이 '('보다 먼저 있으면 괄호가 제대로 닫기지 않기 때문이다. 짝을 맞춰보려면 '('이 나왔을 경우 스택에 넣어주고 ')'이 나오면 스택에 들어있던 '('을 pop해준다. 대신 스택에 아무것도 없는데 ')'이 나오면 더이상 볼 것도..

알고리즘/백준 2023.06.26

[파이썬] BOJ_17608(막대기)

문제 https://www.acmicpc.net/problem/17608 17608번: 막대기 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 www.acmicpc.net 해설 가장 뒤의 막대기는 항상 보여지기 때문에 cnt를 1로 초기화 해준다. 뒤부터 비교하면서 더 큰 막대기가 나오면 cnt를 +1해주고 비교값인 stick을 해당 막대기로 바꿔 비교해나간다. 이렇게 해야 큰 막대기 뒤에 가려지는 막대기들을 가려낼 수 있다. 코드 -파이썬 #백준 17608(막대기) import sys input = sys.stdin.readline n = int(input()) ..

알고리즘/백준 2022.11.07

[파이썬] BOJ_10828(스택)

문제 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 해설 이 문제는 가장 기본적인 스택 문제이다. 코드 -파이썬 #백준 10828(스택) import sys n = int(sys.stdin.readline()) stack = [] for i in range(n): x = sys.stdin.readline().split() if x[0] == "push": stack.append(x[1]) if x[0] == "pop": if..

알고리즘/백준 2022.05.24
728x90
반응형