반응형

안녕들 하시죠!

이번시간에는 백준 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

+ Recent posts