코딩 공부/알고리즘

스택 Stack

공부를 함 2024. 10. 11. 10:14

스택?

먼저 들어간 원소가 가장 나중에 나오는 First in last out (FILO) 자료구조이다. 스택, 큐, 덱은 모두 특정 위치에서만 원소를 넣거나 뺄 수 있는 제한이 걸려있어 Restricted structure라고 부르기도 한다.

 

  • 원소의 추가 O(1)
  • 원소의 제거 O(1)
  • 최상단의 원소 확인 O(1)
  • 최상단이 아닌 원소들의 확인/변경이 원칙적으로 불가능

 

연습 문제

1. 백준 10828 : https://www.acmicpc.net/problem/10828

using System.Text;

var count = int.Parse(Console.ReadLine());
Stack<int> stack = new Stack<int>();

for (int i = 0; i < count; i++)
{
    StringBuilder sb = new StringBuilder();
    var input = Console.ReadLine();
    string[] token = input.Split(' ');
    if (input != null)
    {
        if (input.Contains("push")) stack.Push(int.Parse(token[1]));
        else if (input == "pop")
        {
            if (stack.Count <= 0) sb.Append(-1);
            else sb.Append(stack.Pop());
        }
        else if (input == "size") { sb.Append(stack.Count); }
        else if (input == "empty")
        {
            if (stack.Count <= 0) sb.Append(1);
            else sb.Append(0);
        }
        else if (input == "top")
        {
            if (stack.Count <= 0) sb.Append(-1);
            else sb.Append(stack.Peek());
        }
        if(!input.Contains("push")) Console.WriteLine(sb.ToString());
    }
}

 

'코딩 공부 > 알고리즘' 카테고리의 다른 글

덱 Double ended queue  (0) 2024.10.11
큐 queue  (0) 2024.10.11
연결 리스트  (0) 2024.10.11
배열  (0) 2024.10.11
시간복잡도, 공간복잡도  (0) 2024.10.09