티스토리 뷰

반복문으로 차례차례 작은 값부터 원하는 값까지 구하되, 이전 값을 이용하여 최솟값을 계속 찾아 결과적으로 원하는 값의 최솟값을 구한다.




당연하지만 두번째 if문을 else if로 쓰면 안된다.

  
        static void Main(string[] args)
        {
            int[] a = new int[1000001];
            //index 0은 사용하지 않는다.
            string s = Console.ReadLine();
            int n = int.Parse(s);

            for(int k = 2; k<=n; k++)
            {
                a[k] = a[k - 1] + 1;
                if (k % 2 == 0)
                    a[k] = Math.Min(a[k], a[k / 2] + 1);
                if (k % 3 == 0)
                    a[k] = Math.Min(a[k], a[k / 3] + 1);
            }

            Console.WriteLine(a[n]);
        }
    }


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/11   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함