반응형
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 |
댓글