백준 11866

Algorithm|2023. 8. 19. 18:54

스택도 했으니 큐도 한번 해봐야 하지 않을까? 해서 풀어본 문제.
확실히 스택이든 큐든 옛날에 C로 직접 구현했을땐 골때렸는데 라이브러리로 퉁치는게 쉽고 빠르다.

문제가 무슨말을 하는지 잘 이해안되서 그림판에다 해보니 바로 이해가 갔던..

 

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

 

11866번: 요세푸스 문제 0

첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)

www.acmicpc.net

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

namespace yosepus
{
    class b11866
    {
        static void solution(int N, int K)
        {
            Queue<int> SQ = new Queue<int>(N);
            int flag = N;
            int set = 1;
            Console.Write("<");
            for (int i = 1; i <= N; i++)
            {
                SQ.Enqueue(i);
            }
            while (SQ.Count() != 0)
            {
                int k = SQ.Dequeue();
                if(set != K)
                {
                    SQ.Enqueue(k);
                    set++;
                }
                else
                {
                    if(SQ.Count == 0)
                    {
                        Console.WriteLine("{0}>", k);
                        break;
                    }
                    Console.Write("{0}, ", k);
                    set = 1;
                }
               
                flag--;
                //SQ.TrimToSize();
            }
            //Console.Write(">");
        }
        static void Main(string[] args)
        {

            int N = 0, K = 0;
            string[] tmp = Console.ReadLine().Split(' ');

            N = int.Parse(tmp[0]);
            K = int.Parse(tmp[1]);


            solution(N, K);
            //Console.WriteLine("Input N: {0}, K: {1}", N, K);
        }
    }
}

'Algorithm' 카테고리의 다른 글

백준 9461  (0) 2023.08.20
백준 1149  (0) 2023.08.20
백준 12789  (0) 2023.08.19
백준 2798  (0) 2023.08.18
백준 2839  (0) 2023.08.18

댓글()