Stack 3

[Algorithm] 백준 17298번: 오큰수 | 스택 응용

문제 출처: https://www.acmicpc.net/problem/17298 1. 결과 메모리 153484KB, 시간 1212ms 2. 풀이 처음에는 이 문제를 이중 for문을 통해 각 자리의 숫자(i번째)마다 이후의 숫자(i+1번째부터 n번째까지)를 탐색하며 큰 수가 있다면 이를 저장하며 break, 없다면 끝까지 탐색 후 -1을 추가하게 되는 방법으로 작성했다. 이 경우는 답은 도출이 되었지만 시간 복잡도가 크게(O(N^2)) 발생되었다. 다른 풀이로는 먼저 첫 숫자에 대해 나머지 숫자를 탐색하며 첫 숫자보다 큰 숫자가 있다면 해당 숫자를 스택에 저장하고, 두 번째 숫자부터 모두 해당 숫자보다 작다면 스택의 마지막 숫자를 그대로 또 추가하는 방식을 적용해봤다. 만약 스택의 마지막 숫자보다 현재 숫..

[Algorithm] 백준 10773번: 제로 | 클래스로 스택 구현

문제 출처: https://www.acmicpc.net/problem/10773 1. 결과 메모리 29980KB, 시간 4908ms 2. 풀이 이 문제는 솔직히 전혀 어려웠거나 어떤 이슈가 있는 것이 아니고, 직접 스택이라는 추상적 자료형을 클래스로써 구현한 코드를 담고 있기 때문에 남긴다. 파이썬의 리스트를 이용해서 구현해서 충분히 쉽게 풀이가 가능한 문제이다. import sys class Stack: def __init__(self): self.stack = [] def push(self, x): self.stack.append(x) def rmpop(self): if self.stack: self.stack = self.stack[:-1] def pop(self): if self.stack: re..

[Python] 선형 자료구조 - 스택(Stack)과 큐(Queue)

자료구조는 선형 구조와 비선형 구조로 나눌 수 있다. 선형 구조는 자료들이 순서를 가지고 있는 연속된 자료구조를 뜻한다. 선형 구조를 갖는 대표적인 자료구조는 스택(Stack)과 큐(Queue)가 있는데, 이 글은 이 둘에 대한 개념과 구조, 구현 소스 코드 등을 정리했다. 1. 스택(Stack) 한쪽 끝에서만 자료를 넣고 뺄 수 있는 자료구조로써, 후입선출, LIFO(Last In First Out) 등의 성격을 갖는다. 배열, 연결 리스트 등의 자료구조로 구현할 수 있으며, 파이썬의 리스트도 거의 스택과 비슷한 방식으로 동작한다. push, pop, size, empty, top 등의 연산을 구현할 수 있으며 이를 구현한 코드와 다른 책을 참조한 소스 코드는 각각 아래 링크에 있다. 1) 간단하게 구..