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();
}
}
}


'알고리즘 > 백준 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 |