stack
-
[BOJ]백준 17928번: 오큰수/StackProblem Solving/BOJ(백준) 2021. 1. 13. 23:22
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 수열이 있을 때, 각 원소에 대해 오큰수를 구하는 문제 오큰수란? 해당 원소를 Ai라 할 때 Ai의 오른쪽에 위치한 원소들 중 index가 가장 작으면서 Ai보다 큰 원소를 나타낸다 예제에 대해, [3 5 2 7]을 마지막 원소부터 보면 - 7: 오른쪽에 원소가 없으므로 -1 - 2: 바로 오른쪽에 7이 2보다 크므로 7 - 5: 한 칸 건너뛰어서 7이 5보다 크므로 7 - 3: 7이 가장 크지만 5가 7보다 왼쪽에 있으므로..
-
Postfix Calculator(후위 표기식 계산기) 구현Algorithm 2021. 1. 13. 22:42
postfix란 뭘까 수식의 종류에는 prefix, infix, postfix 세 가지가 존재한다 이것은 연산자가 피연산자들 사이에서 어느 위치에 존재하느냐에 따라 나뉜다 우리는 일상생활에서 99.999999% Infix 방식을 이용해서 표기한다. 하지만 Infix방식에는 문제점이 존재한다 5+4*3 이라는 수식이 존재할 때, '*' 연산자가 '+' 연산자보다 우선순위가 높기 때문에 해당 수식을 먼저 계산해줘야 한다 하지만 이것은 계산을 하는 사람이 모든 수식을 차례로 읽은 뒤, 연산 순서를 임의로 정해야 한다. 그렇기 때문에 순차적으로 입력을 받고 이를 해결하는 컴퓨터의 계산 방식과는 약간 다르다. 컴퓨터는 postfix 연산 방식을 선호한다. 위의 수식을 postfix로 전환하면, 5 4 3 * + ..
-
ADT Stack의 정의와 연산 구현 (create, push, pop, top, empty)Data Structure 2021. 1. 11. 22:52
스택 실생활에서도 정말많이 사용하는 자료구조이다 물론 Computer Science에서도 정말정말정말 중요하고 몰라서는 안될 자료구조이기도 하다 인터넷 방문 기록(뒤로가기)의 구현에도, 함수의 재귀 호출에도 스택이 사용된다 하지만 스택에 대해서 음 후입선출~ 정도까지만 간략히 알고있는 경우가 많다 또 스택이면 스택이지 ADT 스택은 뭘까? 우선 스택에 대해 간략하게 알아보자면 스택에는 데이터들이 저장되어 있다. 가장 위(마지막)에 저장한 데이터의 위치를 스택의 탑이라고 한다. 데이터의 추가/삭제는 오직 스택의 탑 위치에서만 가능하다. ADT Stack은 어떠한 자료의 형태에 'Stack'이라고 명명할 수 있게 하는 자료의 형태와 연산을 정의한 것을 말한다. 즉, 이것을 만족하지 않는 자료는 스택이라고 할..