본문 바로가기
알고리즘/백준 BOJ

[ BOJ/C# ] 10828 스택

by 왹져박사 2023. 8. 23.
728x90

https://www.acmicpc.net/problem/10828

 

10828번: 스택

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

www.acmicpc.net

https://learn.microsoft.com/ko-kr/dotnet/api/system.collections.generic.stack-1?view=net-7.0 

 

Stack<T> 클래스 (System.Collections.Generic)

지정한 동일 형식의 인스턴스로 이루어진 가변 크기 LIFO(후입선출) 방식의 컬렉션을 나타냅니다.

learn.microsoft.com

이번엔 switch 문을 이용하여 풀어보았다. 훨씬 가독성이 좋은 듯하다. 

using System;

namespace _10828
{
    class Program
    {
        static void Main()
        {
            StreamReader sr = new StreamReader(Console.OpenStandardInput());
            StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());

            int n = int.Parse(sr.ReadLine());
            Stack<int> stack = new Stack<int>();

            for(int i=0; i < n; i++)
            {
                string[] str = sr.ReadLine().Split(' ');

                switch (str[0])
                {
                    case "push":
                        stack.Push(int.Parse(str[1]));
                        break;
                    case "pop":
                        if (stack.Count == 0) goto default;
                        sw.WriteLine(stack.Pop());
                        break;
                    case "size":
                        sw.WriteLine(stack.Count());
                        break;
                    case "empty":
                        if (stack.Count == 0) sw.WriteLine("1");
                        else sw.WriteLine("0");
                        break;
                    case "top":
                        if (stack.Count() == 0) goto default;
                        else sw.WriteLine(stack.Peek());
                        break;
                    default:
                        sw.WriteLine("-1");
                        break;
                }
            }
            sr.Close();
            sw.Flush();
            sw.Close();
        }
    }
}

728x90

'알고리즘 > 백준 BOJ' 카테고리의 다른 글

[ BOJ/C# ] 2844 알람 시계  (0) 2023.08.25
[ BOJ/C# ] 2751 수 정렬하기 2  (0) 2023.08.23
[ BOJ/C# ] 10845 큐  (0) 2023.08.22
[ BOJ/C# ] 2675 문자열 반복  (0) 2023.08.21
[ BOJ/C# ] 2920 음계  (0) 2023.08.21