백준

백준 2903번 c#

대왕군 2024. 1. 26. 20:42

 

using System;

namespace Baekjoon
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //그냥 콘솔창 예쁘게 꾸미는 코드(심심해서 넣음)
            Console.BackgroundColor = ConsoleColor.DarkCyan;

            //몇 번 반복할지 받아옴
            int count = int.Parse(Console.ReadLine());
            //초기 상태(사각형 한 개)의 사각형 한 변의 점 개수 2개
            int lineDot = 2;

            //입력값만큼 반복
            for (int i = 0; i < count; i++)
            {
                //i번째 반복했을 때, 한 변의 점 갯수 구하는 법
                //이전 단계 한 변의 점 개수 * 2 - 1 = 현재 단계 한 변의 점 개수
                //단, 맨 처음 초기상태(사각형이 하나만 있을 때)에서는 이 공식 제외
                lineDot = lineDot * 2 - 1;
            }

            //공식
            //한 변의 점 개수의 2제곱 = 현재 단계의 사각형 점의 총 갯수
            Console.WriteLine(Math.Pow(lineDot, 2));

        }

    }
}

 

공식

 

처음에 몇 시간이 걸리도록 규칙을 못찾아내서 애먹었다

결국 다른 블로그를 찾아 힌트를 봤는데 각 변의 제곱이 그 단계의 모든 점 갯수란 것을 알았다

그리고 해결방법을 생각해내다가 공식을 발견해서 해결하였다.