728x90
문제
https://www.acmicpc.net/problem/10845
10845번: 큐
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
그냥 큐 문제고 요구하는 요건을 맞추면 된다.
코드
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 |