C# 10828번 스택
2022. 2. 9. 16:29ㆍ코딩테스트 문제 풀이/[백준] 스택
728x90
반응형
수정 전 코드 :
using System;
using System.Collections;
using System.Text;
namespace _1
{
class Program
{
static void Main(string[] args)
{
Stack stack = new Stack();
int N = Convert.ToInt32(Console.ReadLine());
StringBuilder sb = new StringBuilder();
for (int i = 0; i < N; i++)
{
string[] input = Console.ReadLine().Split(' ');
switch(input[0])
{
//PUSH
case "push":
stack.Push(input[1]);
break;
//POP
case "pop":
{
if (stack.Count != 0)
sb.AppendLine(stack.Pop().ToString());
else
sb.AppendLine("-1");
break;
}
//SIZE
case "size":
sb.AppendLine(stack.Count.ToString());
break;
//EMPTY
case "empty":
{
if (stack.Count == 0)
sb.AppendLine("1");
else
sb.AppendLine("0");
break;
}
//TOP
case "top":
{
if (stack.Count != 0)
sb.AppendLine(stack.Peek().ToString());
else
sb.AppendLine("-1");
break;
}
}
}
Console.WriteLine(sb);
}
}
}
스택의 기본적인 구조를 이해할 수 있는 문제이다. Swich-case문을 통해 쉽게 구현이 가능하며 case안을 if문을 통해 좀더 세세하게 쪼개서 구현할 수 있다. 시간초과가 뜰 수 있기 때문에 stringbuilder()를 사용했다.
수정 후 코드 :
using System;
using System.Collections;
using System.Text;
namespace _1
{
class Program
{
static void Main(string[] args)
{
Stack stack = new Stack();
int N = Convert.ToInt32(Console.ReadLine());
StringBuilder sb = new StringBuilder();
for (int i = 0; i < N; i++)
{
string[] input = Console.ReadLine().Split(' ');
switch(input[0])
{
//push
case "push":
stack.Push(input[1]);
break;
//pop
case "pop":
{
sb.AppendLine(stack.Count != 0 ? stack.Pop().ToString() : "-1");
break;
}
//size
case "size":
sb.AppendLine(stack.Count.ToString());
break;
//empty
case "empty":
{
sb.AppendLine(stack.Count == 0 ? "1" : "0");
break;
}
//top
case "top":
{
sb.AppendLine(stack.Count != 0 ? stack.Peek().ToString() : "-1");
break;
}
}
}
Console.WriteLine(sb);
}
}
}
삼항 연산자를 통해 case문 안에 있던 if문들을 한 줄로 표현하였다. 이게 좀더 짧아서 보기 좋은거같다.
728x90
반응형
'코딩테스트 문제 풀이 > [백준] 스택' 카테고리의 다른 글
C# 17298번 오큰수 (0) | 2022.02.15 |
---|---|
C# 1874번 스택 수열 (0) | 2022.02.15 |
C# 4949번 균형잡힌 세상 (0) | 2022.02.15 |
C# 9012번 괄호 (0) | 2022.02.09 |
C# 10773번 제로 (0) | 2022.02.09 |