코딩 테스트/BOJ

C# 15828 라우터

s0002 2023. 1. 11. 22:05

테스트케이스1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Collections;

namespace Study10
{
    class App
    {
        int n = 5;
        int[] arr = { 1, 2, 0, 3, 4, 0, 5, 6, 0, 0, -1 };
        //생성자 
        public App()
        {
            //여기서부터 작성 하세요 
            for (int i = 0; i < arr.Length; i++)
            {
                if (q.Count >= n && arr[i] == 0) //라우터가 가득 찼는데 이번 값이 0이면 큐에 있던 패킷 처리
                {
                    q.Dequeue();
                    continue;
                }
                if (q.Count >= n) //라우터가 가득 찼는데 이번 값이 0이 아니면 그냥 버림
                    continue;
                //라우터가 가득 차지 않았을 때
                if (arr[i] > 0) //이번 값이 양의 정수면 큐에 입력
                    q.Enqueue(arr[i]);
                if (arr[i] == 0) //이번 값이 0이면 큐에 있던 패킷 처리
                    q.Dequeue();
                else if (arr[i] == -1) //이번 값이 -1이면 입력 끝이므로 break;
                    break;
            }

            if (q.Count != 0) //큐에 값이 남아 있을 때
            {
                foreach (int output in q) //큐의 값을 하나씩 output에 넣어서 출력한다
                    Console.Write("{0} ", output);
            }
            else
                Console.WriteLine("empty"); //큐에 값이 없으면 empty 출력


            //출력 
            //5 6
        }
    }
}

테스트케이스2

using System;
using System.Collections.Generic;
using System.Linq;
using System.Collections;

namespace Study10
{
    class App
    {
        int n = 1;
        int[] arr = { 1, 2, 3, 4, 5, 6, 7, -1 };
        //생성자 
        public App()
        {
            //여기서부터 작성 하세요 
            Queue q = new Queue();

            for (int i = 0; i < arr.Length; i++)
            {
                if (q.Count >= n && arr[i] == 0) //라우터가 가득 찼는데 이번 값이 0이면 큐에 있던 패킷 처리
                {
                    q.Dequeue();
                    continue;
                }
                if (q.Count >= n) //라우터가 가득 찼는데 이번 값이 0이 아니면 그냥 버림
                    continue;
                //라우터가 가득 차지 않았을 때
                if (arr[i] > 0) //이번 값이 양의 정수면 큐에 입력
                    q.Enqueue(arr[i]);
                if (arr[i] == 0) //이번 값이 0이면 큐에 있던 패킷 처리, 여기서는 라우터가 가득 차지 않으면 그냥 빈 큐이므로 아무 일도 안 일어남
                    q.Dequeue();
                else if (arr[i] == -1) //이번 값이 -1이면 입력 끝이므로 break;
                    break;
            }

            if (q.Count != 0) //큐에 값이 남아 있을 때
            {
                foreach (int output in q) //큐의 값을 하나씩 output에 넣어서 출력한다
                    Console.Write("{0} ", output);
            }
            else
                Console.WriteLine("empty"); //큐에 값이 없으면 empty 출력

            //출력 
            //1
        }
    }
}

테스트케이스3

using System;
using System.Collections.Generic;
using System.Linq;
using System.Collections;

namespace Study10
{
    class App
    {
        int n = 1;
        int[] arr = { 1, 2, 0, 3, 4, 0, 5, 6, 0, 7, 0, -1 };
        //생성자 
        public App()
        {
            //여기서부터 작성 하세요 
            Queue q = new Queue();

            for (int i = 0; i < arr.Length; i++)
            {
                if (q.Count >= n && arr[i] == 0) //라우터가 가득 찼는데 이번 값이 0이면 큐에 있던 패킷 처리
                {
                    q.Dequeue();
                    continue;
                }
                if (q.Count >= n) //라우터가 가득 찼는데 이번 값이 0이 아니면 그냥 버림
                    continue;
                //라우터가 가득 차지 않았을 때
                if (arr[i] > 0) //이번 값이 양의 정수면 큐에 입력
                    q.Enqueue(arr[i]);
                if (arr[i] == 0) //이번 값이 0이면 큐에 있던 패킷 처리, 여기서는 라우터가 가득 차지 않으면 그냥 빈 큐이므로 아무 일도 안 일어남
                    q.Dequeue();
                else if (arr[i] == -1) //이번 값이 -1이면 입력 끝이므로 break;
                    break;
            }

            if (q.Count != 0) //큐에 값이 남아 있을 때
            {
                foreach (int output in q) //큐의 값을 하나씩 output에 넣어서 출력한다
                    Console.Write("{0} ", output);
            }
            else
                Console.WriteLine("empty"); //큐에 값이 없으면 empty 출력


            //출력 
            //empty
        }
    }
}

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

 

'코딩 테스트 > BOJ' 카테고리의 다른 글

C# 2711 오타맨 고창영  (0) 2023.01.12
C# 9086 문자열  (0) 2023.01.12
C# 9012 괄호  (0) 2023.01.11
배열에서 최댓값, 최솟값 구하기  (0) 2023.01.10
C# 27110 특식 배부  (0) 2023.01.10