반응형
무하지
무하지
무하지
전체 방문자
오늘
어제
  • 분류 전체보기
    • 알고리즘
      • 알고리즘+자료구조
      • 문제풀이
    • Python
      • 머신러닝
    • 운영체제
    • Javascript
    • React
    • C#
    • C++
    • Java
    • Kotlin
    • 수학
      • 통계학
    • 기타
    • Computer Science

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
무하지

무하지

알고리즘/알고리즘+자료구조

[자료구조] 스택 구현하기 (C++)

2022. 3. 8. 18:00
반응형
문제: https://www.acmicpc.net/problem/10828
 

10828번: 스택

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

 

스택은 데이터의 입력과 출력이 한쪽 방향으로만 이루어지기 때문에 배열을 이용해서 구현할 수 있습니다.

 

#include <iostream>
#include <string>

struct stack
{
    int arr[10000];
    int top_index = -1;

    // arr[top]을 리턴하고 top을 1 감소시킨다.
    int pop()
    {
        if (isEmpty())
            return -1;
        return arr[top_index--];
    }

    // top을 1 증가시키고 arr[top]에 저장
    void push(int n)
    {
        arr[++top_index] = n;
    }

    // top + 1 리턴
    int size()
    {
        return top_index + 1;
    }

    // top이 -1이면 1 리턴, 아니면 0 리턴
    int isEmpty()
    {
        return top_index == -1 ? 1 : 0;
    }

    // arr[top] 리턴
    int top()
    {
        if (isEmpty())
            return -1;
        return arr[top_index];
    }
};

int main()
{
    int N;
    std::string arg;
    stack myStack;
    std::cin >> N;

    while (N--)
    {
        int result;
        std::cin >> arg;
        if (arg == "push")
        {
            int num;
            std::cin >> num;
            myStack.push(num);
        }
        else if (arg == "pop")
        {
            std::cout << myStack.pop() << std::endl;
        }
        else if (arg == "size")
        {
            std::cout << myStack.size() << std::endl;
        }
        else if (arg == "empty")
        {
            std::cout << myStack.isEmpty() << std::endl;
        }
        else if (arg == "top")
        {
            std::cout << myStack.top() << std::endl;
        }
    }
}

 

 

 

반응형

'알고리즘 > 알고리즘+자료구조' 카테고리의 다른 글

[자료구조] 연결리스트 구현하기 (C++)  (0) 2022.03.08
    '알고리즘/알고리즘+자료구조' 카테고리의 다른 글
    • [자료구조] 연결리스트 구현하기 (C++)
    무하지
    무하지

    티스토리툴바