SMALL
https://www.acmicpc.net/problem/11866
11866번: 요세푸스 문제 0
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)
www.acmicpc.net
- 문제
- 문제풀이
카운트를 올려가면서 K와 카운트가 같아지면 Dequeue를 통해 빼주고 나머지는 다시 Enqueue로 넣어준다.
- 코드 1
using System.Collections.Generic;
using System;
using System.Collections;
using System.Text;
namespace yongyong2
{
internal class Program
{
static void Main(string[] args)
{
Queue<int> queue = new Queue<int>();
StringBuilder sb= new StringBuilder();
string[] input = Console.ReadLine().Split();
int N = int.Parse(input[0]);
int K = int.Parse(input[1]);
for (int i = 1; i <= N; i++)
{
queue.Enqueue(i);
}
sb.Append("<");
int count = 0;
while (queue.Count>1)
{
count++;
if (count == K)
{
sb.Append(string.Format("{0}, ", queue.Dequeue()));
count = 0;
}
else
{
queue.Enqueue(queue.Dequeue());
}
}
sb.Append(string.Format("{0}>", queue.Dequeue()));
Console.WriteLine(sb.ToString());
}
}
}
- 후기
Enqueue와 Dequeue를 이해하기 좋은 문제이다.
LIST
'백준 > C#' 카테고리의 다른 글
[C#]백준 15828번: Router (2) | 2023.01.28 |
---|---|
[C#]백준 1966번: 프린터 큐 (0) | 2023.01.28 |
[C#]백준 2164번: 카드2 (0) | 2023.01.28 |
[C#]백준 9012번: 괄호 (0) | 2023.01.14 |
[C#]백준 10773번: 제로 (0) | 2023.01.05 |