상세 컨텐츠

본문 제목

백준# 10845 - 큐

C#/알고리즘

by McRobbin 2020. 6. 21. 07:46

본문

https://www.acmicpc.net/problem/10845

 

10845번: 큐

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 ��

www.acmicpc.net

큐로 분류된 10845 큐 문제 입니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace _10845
{
    class Program
    {
        static void Main(string[] args)
        {
            int count = int.Parse(Console.ReadLine());
            Queue<int> queue = new Queue<int>();
            StringBuilder stringBuilder = new StringBuilder("");
            for(int i = 0; i < count; i++)
            {
                string[] input = Console.ReadLine().Split(' ');
 
                switch (input[0])
                {
                    case "push":
                        queue.Enqueue(int.Parse(input[1]));
                        break;
 
                    case "pop":
                        stringBuilder.Append((queue.Count == 0) ? "-1\n" : queue.Dequeue().ToString() + "\n");
                        break;
 
                    case "front":
                        stringBuilder.Append((queue.Count == 0) ? "-1\n" : queue.Peek().ToString() + "\n");
                        break;
 
                    case "back":
                        stringBuilder.Append((queue.Count == 0) ? "-1\n" : queue.Last().ToString() + "\n");
                        break;
 
                    case "size":
                        stringBuilder.Append(queue.Count.ToString() + "\n");
                        break;
 
                    case "empty":
                        stringBuilder.Append((queue.Count == 0) ? "1\n" : "0\n");
                        break;
 
                    default:
                        break;
                }
 
            }
            Console.WriteLine(stringBuilder);
 
        }
    }
}
 
 
cs

큐는 스택과 다르게 Enque, Deque를 사용한다는 점 이것만 다르죠.

입력 받는 스트링에 따라 스위치 문으로 구분하고 실행하면 되겠습니다.

 

처음 할때 입력 받을때마다 출력하게 했더니 시간초과 나더라구요,,?

 

그래서 스트링 빌더 하나 두고 입력 하나에 출력이 아닌 스트링에 쌓아둬서

입력이 모두 끝났을때 출력하게 했습니다.

'C# > 알고리즘' 카테고리의 다른 글

백준# 4963 - 섬의 갯수  (0) 2020.07.28
백준# 1967 - 트리의 지름  (0) 2020.07.28
백준 #2504 - 괄호의 값  (0) 2020.06.13
백준 #1343 - 폴리오미노  (0) 2020.05.30
백준# 2870 - 수학숙제  (0) 2020.05.22

관련글 더보기