반응형
안녕들 하시죠!
이번시간에는 백준 10828번 스택 문제를 풀어보겠습니다.
스택 이란?
제일 먼저 입력된 데이터가 맨 아래에 쌓이고 가장 최근에 입력된 데이터가 가장 위에 쌓이는 후입 선출(LIFO : Last-in First-out) 구조이다.
위에 있는 스택의 특성을 이용하여 코드를 작성했고, 함수를 이용했습니다.
코드에 문제가 있다면 댓글로 피드백 부탁드리겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
import java.util.Scanner;
public class hello {
// 전역 변수 선언부
static Scanner sc = new Scanner(System.in);
static int totalNum = sc.nextInt(); // 명령의 수
static int[] totalArr = new int[totalNum]; // 명령의 갯수만큼 배열 생성
static int top = -1;
//
static void push() {
top++;
totalArr[top] = sc.nextInt();
}
static void pop() {
if (top == -1) {
System.out.println("-1");
} else {
System.out.println(totalArr[top]);
top--;
}
}
static void size() {
System.out.println(top + 1);
}
static void empty() {
if (top == -1) {
System.out.println("1");
} else {
System.out.println("0");
}
}
static void top() {
if (top != -1) {
System.out.println(totalArr[top]);
} else {
System.out.println("-1");
}
}
public static void main(String[] args) {
String comm; // 사용자가 입력하는 명령을 저장하는 변수
for (int i = 0; i < totalNum; i++) {
comm = sc.next();
if (comm.equals("push")) {
push();
}
else if (comm.equals("pop")) {
pop();
}
else if (comm.equals("size")) {
size();
}
else if (comm.equals("empty")) {
empty();
}
else if (comm.equals("top")) {
top();
}
}
}
}
|
cs |
오늘은 여기까지입니다 감사합니다 !
참고서적 천인국, 공용해, 하상호 「c언어로 쉽게 풀어쓴 자료구조」
'알고리즘' 카테고리의 다른 글
Java) 입력받은 숫자 n까지의 소수갯수 구하기 + 최적 알고리즘 (0) | 2019.09.27 |
---|---|
Java 원형큐 구현 (0) | 2019.06.23 |
Java 링크드리스트 구현 (0) | 2019.06.22 |
백준 2750번 (버블정렬) (0) | 2019.05.01 |
백준 1000번 (0) | 2019.04.16 |