https://www.acmicpc.net/problem/10828
10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다.
www.acmicpc.net
알고리즘 분류 : 구현 자료 구조 스택
스택
가장 먼저 들어간 자료는 맨 아래쪽에 쌓이고, 가장 나중에 들어간 데이터는 제일 위에 쌓이기 때문에 먼저 들어간 자료일수록 나중에 나오고, 늦게 들어간 자료일수록 먼저 나오는 데이터 구조로 이를 후입선출 구조라고 하며 영어로는 LIFO = Last In First Out라고 한다.
Python에서는 리스트[]로 이미 구현되어 있다.
스택의 기본연산에는 push(), pop(), peek(), empty()가 있다.
push() : 스택에 원소를 추가한다.
pop() : 스택의 가장 위에 있는 원소를 삭제하고, 그 원소를 반환한다.
top() : 스택의 가장 위에 있는 원소를 반환한다.(삭제는 하지 않는다)
empty() : 스택이 비어있다면 1, 아니면 0을 반환한다.
나의 풀이
제출시 결과는 맞았습니다!!
- _num은 첫 번째 입력받는 n(명령어의 수)를 의미한다.
- _stack은 명령어를 수행하고 난 후의 결과(스택)을 의미한다.
- _result는 결과로 출력할 답을 의미한다.
- _input은 각각의 명령어를 의미한다.
- _len은 스택의 길이를 의미한다.
각각의 명령어인 push, pop, top, size, empty를 조건문을 이용하여 각각의 조건에 맞게 코드를 작성해주었다.
append(), pop()을 이용하여 스택의 개념에 맞게 풀었다.
'Algorithm > Baekjoon' 카테고리의 다른 글
백준 2252번 - 줄 세우기(Node.js) (0) | 2022.08.08 |
---|---|
백준 11502번 - 세 개의 소수 문제(Node.js) (0) | 2022.08.04 |
백준 1057번 - 토너먼트(Node.js) (1) | 2022.07.30 |
백준 11047번 - 동전 0(Node.js) (0) | 2022.07.28 |
백준 10773번 - 제로(Node.js) (0) | 2022.07.27 |