SMALL

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

 

15828번: Router

인터넷을 사용하기 위해서는 컴퓨터에 인터넷 회선을 연결하거나 Wi-Fi를 연결해야 한다. 이렇게 연결된 네트워크를 통해 컴퓨터에는 통신이 가능하다. 마음에 드는 노래나 동영상이 있는 곳에

www.acmicpc.net


  • 문제


  • 문제풀이

문제이해가 조금 걸렸다. 큐의 크기를 N으로 제한하고 정보(상수)가 들어온다면 라우터에 넣어주고 0이면 라우터가 정보를 처리하여 큐에서 빼주는 것이다.

 

큐를 생성하고 -1을 받는다면 break를 해주고 0보다 크다면 큐에 넣고 0과 같으면 큐에서 빼준다. C#의 경우 시간초과가 나타날 수 있기 때문에 반드시 StringBuilder을 사용하여 출력을 해야한다. 사용하지 않으면 시간초과로 50점이 나오게 된다.


  • 코드 1
using System.Text;

namespace Yongyong2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            StringBuilder sb = new StringBuilder();
            double N = int.Parse(Console.ReadLine());
            int num = 0;
            Queue<int> queue = new Queue<int>();
            while (true)
            {
                num = int.Parse(Console.ReadLine());

                if (num == -1)
                {
                    break;
                }
                if (num > 0)
                {
                    if (queue.Count() < N)
                    {
                        queue.Enqueue(num);
                    }
                }
                if (num == 0)
                {
                    queue.Dequeue();
                }
            }
            if (queue.Count() == 0)
            {
                sb.Append("empty");
            }
            else
            {
                while (queue.Any())
                {
                    sb.Append(queue.Peek() + " ");
                    queue.Dequeue();
                }
            }
            Console.WriteLine(sb.ToString());
        }
    }
}

  • 후기

문제 이해가 코드쓰는 것 보다 더 오래걸렸다.

LIST

+ Recent posts