본문 바로가기
코딩테스트 준비/백준 C#

백준 C# - 10845

by 코딩하는 돼징 2023. 9. 22.
반응형

Stack 알아보러가기

 

백준 C# - 10828

stack을 활용하면 금방 풀리는 문제였다. using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace baek2 { class Program { static void Main(string[] args) { int num = int.Parse(Console.ReadLine()); Stack st

code-piggy.tistory.com


using System;
using System.Collections.Generic;
using System.Text;

namespace baek2
{
    class Program
    {
        static void Main(string[] args)
        {
            int num = int.Parse(Console.ReadLine());
            Queue<int>  queue = new Queue<int>();
            for (int i = 0; i<num; i++)
            {
                StringBuilder sb = new StringBuilder();
                string a = Console.ReadLine();
                string[] token = a.Split(' ');

                if (a.Contains("push"))
                {
                    int b = int.Parse(token[1]);
                    queue.Enqueue(b);
                }
                else if (a.Contains("pop"))
                {
                    if (queue.Count == 0)
                        sb.Append(-1);
                    else
                        sb.Append(queue.Dequeue());
                }
                else if (a.Contains("empty"))
                {
                    int empty = (queue.Count > 0) ? 0 : 1;
                    sb.Append(empty);
                }
                else if (a.Contains("front"))
                {
                    if (queue.Count == 0)
                        sb.Append(-1);
                    else
                        sb.Append(queue.Peek());
                }
                else if (a.Contains("back"))
                {
                    if (queue.Count == 0)
                        sb.Append(-1);
                    else
                    {
                        int[] Array = queue.ToArray();
                        sb.Append(Array[Array.Length - 1]);
                    }
                }
                else if(a.Contains("size"))
                {
                    sb.Append(queue.Count);
                }
                if(!a.Contains("push"))
                    Console.WriteLine(sb.ToString());
            }
        }
    }
}

 

 

 

 

반응형

댓글