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

백준 C# - 14425 +) 풀이

by 코딩하는 돼징 2024. 4. 3.
반응형

back부분을 구현하는 것만 생각하면 되는 문제이다.

01 ToArray()

ToArray()를 사용하니까 메모리 초과가 났다.

int[] array = queue.ToArray();
sb.AppendLine(array.Length > 0 ? array[array.Length-1].ToString() : "-1");
break;

02 push될때 값 저장

push될때 값을 저장하면 그 값이 큐의 가장 끝 값이 된다!

int last = 0;
 while(n>0)
{
    n--;
                
    string[] input = Console.ReadLine().Split();
    switch(input[0])
    {
        case "push":
            queue.Enqueue(int.Parse(input[1]));
            last = int.Parse(input[1]);
            break;

코드 전문

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

namespace baek2
{
    class Program
    {
        public static void Main()
        {
            int n = int.Parse(Console.ReadLine());
            Queue<int> queue = new Queue<int>();
            StringBuilder sb = new StringBuilder();
            int last = 0;
            while(n>0)
            {
                n--;
                
                string[] input = Console.ReadLine().Split();
                switch(input[0])
                {
                    case "push":
                        queue.Enqueue(int.Parse(input[1]));
                        last = int.Parse(input[1]);
                        break;
                    case "pop":
                        if (queue.Count == 0) sb.AppendLine("-1");
                        else
                        {
                            sb.AppendLine(queue.Dequeue().ToString());
                        }
                        break;
                    case "size":
                        sb.AppendLine(queue.Count.ToString());
                        break;
                    case "empty":
                        sb.AppendLine(queue.Count > 0 ? "0" : "1");
                        break;
                    case "front": 
                        sb.AppendLine(queue.Count > 0 ? queue.Peek().ToString() : "-1");
                        break;
                    case "back":
                        sb.AppendLine(queue.Count > 0 ? last.ToString() : "-1");
                        break;           
                }
            }
            Console.Write(sb.ToString());
        }
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'코딩테스트 준비 > 백준 C#' 카테고리의 다른 글

백준 C# - 14891 +) 풀이  (0) 2024.04.15
백준 C# - 1992 +) 풀이  (0) 2024.04.06
백준 C# - 2630 +) 풀이  (0) 2024.04.01
백준 C# - 1021 +) 풀이  (0) 2024.03.31
백준 C# - 14425  (0) 2024.03.31

댓글