728x90
문제
https://www.acmicpc.net/problem/10845
그냥 큐 문제고 요구하는 요건을 맞추면 된다.
코드
using System;
using System.Text;
using System.Collections.Generic;
namespace baekjoon
{
class Algorithm
{
static void Main(string[] str)
{
int n = Convert.ToInt32(Console.ReadLine());
Queue<int> q = new Queue<int>();
StringBuilder sb = new StringBuilder();
for(int i = 0; i < n; i++)
{
string[] ss = Console.ReadLine().Split(" ");
switch(ss[0])
{
case "push":
q.Enqueue(int.Parse(ss[1]));
break;
case "pop":
sb.AppendLine(q.Count == 0 ? "-1" : q.Dequeue().ToString());
break;
case "size":
sb.AppendLine(q.Count.ToString());
break;
case "empty":
sb.AppendLine(q.Count == 0 ? "1" : "0");
break;
case "front":
sb.AppendLine(q.Count == 0 ? "-1" : q.Peek().ToString());
break;
case "back":
sb.AppendLine(q.Count == 0 ? "-1" : q.Last().ToString());
break;
}
}
Console.WriteLine(sb);
q.Clear();
}
}
}
고민
back이 너무 애매했는데, Linq가 언급됐다.
Linq는 데이터 질의(쿼리) 기능을 이용해서 내가 원하는 데이터만 가져오는 것이라고 한다.
그래서 q.Last()는 큐의 메서드를 사용한게 아니고 Linq를 사용해서 queue의 제일 미지막 인자를 가져온거다.
'동식이 취업시키기 작전 > 코딩테스트' 카테고리의 다른 글
[백준] 10816 숫자카드2(c#) (0) | 2024.01.22 |
---|---|
[백준] 1874 스택 수열(c#) (0) | 2024.01.22 |
[백준] 카드2 2164(c#) (1) | 2024.01.22 |
[백준] 제로 10773(c#) (0) | 2024.01.22 |
[백준] 스택 10828(c#) (1) | 2024.01.21 |