본문 바로가기
알고리즘/백준 BOJ

[ BOJ/C# ] 2164 카드2

by 왹져박사 2023. 9. 5.
728x90

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

 

2164번: 카드2

N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가

www.acmicpc.net

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();
        }
    }
}

728x90

'알고리즘 > 백준 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