https://www.acmicpc.net/problem/2164
Queue를 사용하면 쉽게 풀 수 있는 문제였다.
using System;
namespace B2164
{
class Program
{
static void Main()
{
StreamReader sr = new StreamReader(Console.OpenStandardInput());
StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());
int n = int.Parse(sr.ReadLine());
Queue<int> q = new Queue<int>();
//1부터 n까지 초기 세팅
for (int i = 1; i < n + 1; i++) q.Enqueue(i);
int back;
while(q.Count > 1)
{
//1. 가장 위 카드 버리기
q.Dequeue();
//2. 다음 카드 제일 아래로 옮기기
back = q.Dequeue();
q.Enqueue(back);
}
//마지막 카드 출력
sw.WriteLine(q.Dequeue());
sr.Close();
sw.Flush();
sw.Close();
}
}
}
'알고리즘 > 백준 BOJ' 카테고리의 다른 글
[ BOJ/C# ] 10773 제로 (0) | 2023.09.07 |
---|---|
[ BOJ/C# ] 1874 스택 수열 (0) | 2023.09.05 |
[ BOJ/C# ] 1920 수 찾기 (0) | 2023.09.03 |
[ BOJ/C# ] 1676 팩토리얼 0의 개수 (0) | 2023.09.03 |
[ BOJ/C# ] 1546 평균 (0) | 2023.09.01 |