[1110] 더하기 사이클

RudinP·2023년 5월 4일
0

BaekJoon

목록 보기
67/77

생각

큐 사용
1) x < 10 이면 0 enqueue 후 x enqueue
2) dequeue 와 last 를 합한 수를 % 10 후 enqueue.
3) 처음 수와 같을 때까지 실행한 후 cycle 출력 (cycle은 매 더하기 연산마다 1씩 증가)

처음 코드

namespace SongE
{
    public class Program
    {
        static void Main(string[] args)
        {
            string n = Console.ReadLine();
            Console.WriteLine(Cycle(n));
        }

        static int Cycle(string n)
        {
            int x = int.Parse(n);
            int cycle = 0;
            Queue<int> queue = new Queue<int>();

            if (x < 10)
            { 
                queue.Enqueue(0);
                queue.Enqueue(x);
            }
            else
            {
                queue.Enqueue(n[0] - '0');
                queue.Enqueue(n[1] - '0');
            }

            while (true)
            {
                queue.Enqueue((queue.Dequeue() + queue.Last()) % 10);
                cycle++;

                if(queue.Peek() * 10 + queue.Last() == x)
                    return cycle;
            }
        }
    }

}

profile
곰을 좋아합니다. <a href = "https://github.com/RudinP">github</a>

0개의 댓글