백준 알고리즘 강의를 들으며 정리한 내용입니다.
스택은 한 쪽 끝에서만 자료를 넣고 뺄 수 있는 구조이다.
마지막에 넣은 것이 먼저 나오기 때문에 (LIFO: Last In First Out)라고 한다.
push: 자료를 넣는 연산. return 값 x
pop: 스택에서 자료를 빼는 연산. return 값 x
top: 스택의 가장 위에 있는 자료를 보는 연산. 자료 값이 return됨.
empty: 스택이 비었는지 아닌지 알아보는 연산. true, false return
size: 스택에 저장되어 있는 자료의 개수를 알아보는 연산. 자료 개수 return
스택의 구현
일차원 배열로 구현 가능하다.
int stack[1000];
int size = 0;
void push(int data) {
stack[size] = data;
size +=1;
}
void pop() {
stack[size-1] = 0;
size -=1;
}
stack 문제
https://www.acmicpc.net/problem/10828
10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
https://www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
https://www.acmicpc.net/problem/1406
1406번: 에디터
첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수
www.acmicpc.net
'Study > Java' 카테고리의 다른 글
[JAVA] Optional 이란? (0) | 2022.12.06 |
---|---|
[JAVA] 내부 클래스 (0) | 2022.11.13 |
[JAVA] for문 축약(for each문), if-else 축약(삼항 연산자) (0) | 2022.10.18 |
[JAVA] 클래스 변수, 인스턴스 변수, 지역 변수 (0) | 2022.10.12 |
[JAVA] 생성자 (0) | 2022.10.10 |