Algorithm/Data Structure

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 스택 수열 문제는 stack의 push와 pop 연산을 조합하여 1~n까지의 숫자를 원하는 수열의 형태로 뽑아내는 방법을 출력하는 문제다. 이때 push는 +, pop은 -로 출력한다. 예를 들어, 1~5로 만들 수 있는 수열 중 "4 3 5 2 1"을 만들고 싶다면 "push push push push pop pop push pop pop pop"을 수행하면 된다. 이를 +, -..
9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 해당 문제는 괄호가 올바르게 쳐져있는지를 확인하는 문제다. 이는 아래와 같은 원리로 코드를 작성할 수 있다. 괄호가 올바르게 나오는 경우는 '('와 ')'의 개수가 같은 경우다. 단, 개수가 같아도 )(의 경우 올바르지 않은 경우다. 따라서 우리는 수식이 올바른지 판단하기 위한 변수 하나를 선언할 것이다. 단, 초깃값이 0인 변수를 만들고 '('가 나온 경우는 +1, ')'가 나오는 경우는 -1을 더해주자. 해당 코드는 아래와 같이..
10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 기본적인 스택을 구현하는 문제였다. import sys input = sys.stdin.readline n = int(input()) stack = list() for i in range(n): operation = input().split() if operation[0] == "push": stack.append(operation[1]) elif operation[0] == "pop": if len(stack) == 0: print(-1) el..
코딩마루
'Algorithm/Data Structure' 카테고리의 글 목록 (2 Page)