728x90
문제 링크 : https://www.acmicpc.net/problem/10828
목차
1. 설명
2. 내 코드
3. 문제 풀이 해석 내용
4. 실행 결과
설명
백준 실버 4 문제 입니다.
문제명 : 스택
내 코드
var A = int.Parse(Console.ReadLine());
Stack<int> stack = new();
for (int i = 0; i < A; i++)
{
string[] input = Console.ReadLine().Split(' ');
if (input[0] == "push")
{
stack.Push(int.Parse(input[1]));
}
else if (input[0] == "pop")
{
if (stack.Count == 0)
{
Console.WriteLine("-1");
}
else
{
Console.WriteLine(stack.Pop());
}
}
else if (input[0] == "size")
{
Console.WriteLine(stack.Count);
}
else if (input[0] == "empty")
{
if (stack.Count == 0)
{
Console.WriteLine("1");
}
else
{
Console.WriteLine("0");
}
}
else if (input[0] == "top")
{
if (stack.Count == 0)
{
Console.WriteLine("-1");
}
else
{
Console.WriteLine(stack.Peek());
}
}
}
문제 풀이 해석 내용
입력 처리
var A = int.Parse(Console.ReadLine());
사용자로부터 스택 연산의 수를 입력받아 A에 저장합니다.
스택 생성
Stack<int> stack = new();
정수를 저장할 수 있는 스택을 생성합니다.
명령어 처리 루프
for (int i = 0; i < A; i++)
{
string[] input = Console.ReadLine().Split(' ');
사용자가 입력한 명령어를 input 배열로 나누어 저장합니다.
예를 들어, push 3 명령어는 input[0]에 "push", input[1]에 "3"이 저장됩니다.
명령어에 따른 조건문
Push
if(input[0] == "push")
{
stack.Push(int.Parse(input[1]));
}
push 명령어가 입력되면, input[1]의 값을 정수로 변환하여 스택에 추가합니다.
Pop
else if(input[0] == "pop")
{
if (stack.Count == 0)
{
Console.WriteLine("-1");
}
else
{
Console.WriteLine(stack.Pop());
}
}
pop 명령어가 입력되면, 스택이 비어있는지 확인하고, 비어있지 않으면 가장 위의 값을 제거하고 출력합니다.
비어있다면 -1을 출력합니다.
Size
else if(input[0] == "size")
{
Console.WriteLine(stack.Count);
}
스택의 크기를 출력합니다.
Empty
else if(input[0] == "empty")
{
if (stack.Count == 0)
{
Console.WriteLine("1");
}
else
{
Console.WriteLine("0");
}
}
스택이 비어있으면 1, 그렇지 않으면 0을 출력합니다.
Top
else if(input[0] == "top")
{
if (stack.Count == 0)
{
Console.WriteLine("-1");
}
else
{
Console.WriteLine(stack.Peek());
}
}
스택의 가장 위 값을 출력합니다. 비어있으면 -1을 출력합니다.
실행 결과
728x90
'C#' 카테고리의 다른 글
백준 C# 1676 문제 풀이 (0) | 2024.12.12 |
---|---|
백준 C# 10845문제 풀이 (0) | 2024.11.18 |
백준 C# 13241 문제 풀이 (0) | 2024.11.13 |
백준 C# 11650 문제 풀이 (0) | 2024.11.12 |
백준 C# 10989 문제 풀이 (0) | 2024.11.10 |