C#

백준 C# 10828 문제 풀이

psb08 2024. 11. 18. 09:39
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