[백준] C# : 수학은 체육과목 입니다 (15894번)

ssu_hyun·2022년 8월 14일
0

Data Structure & Algorithm

목록 보기
54/67
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Baekjoon
{
    class Program
    {
        /// <summary>
        /// 실선으로 이루어진 도형 둘레 = n개 사각형의 전체 변 개수 - 점선 개수
        /// 점선 개수 = 2*(가로 점선 + 세로 점선) = 4*(1~n-1의 합) -> 시그마 활용
        /// (점선은 겹치는 선이므로 2배를 전체 선의 개수에서 빼야 함)
        /// n개 사각형의 전체 변 개수 = 4 x (1부터 n까지 더한 값) = 4*(1~n의 합)  -> 시그마 활용
        /// 실선으로 이루어진 도형 둘레 = 4*n
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
        	// n 범위 주의하여 자료형 선택
            long n = long.Parse(Console.ReadLine());
            Console.WriteLine(4*n);
        }
    }
}

[풀이1]

해당 수학 문제에서 가장 아랫부분의 정사각형이 n개가 되었을 때

  • 점선의 개수 (점선은 겹치는 선이므로 2배를 전체 선의 개수에서 빼야 함)
    = (가로 점선 + 세로 점선) x 2
    = ((1부터 n-1까지 더한 값) + (1부터 n-1까지 더한 값)) x 2
    = 4i=1n1i4*\displaystyle\sum_{i=1}^{n-1}{i}
    = 4(n1)n24 * \frac{(n-1)n}{2}
    = 2(n1)n2(n-1)n
  • 전체 선의 개수
    = 4 x (1부터 n까지 더한 값)
    = 4i=1ni4*\displaystyle\sum_{i=1}^{n}{i}
    = 4n(n+1)24 * \frac{n(n+1)}{2}
    = 2n(n+1)2n(n+1)

  • 실선으로 이루어진 도형의 둘레 길이
    = 전체 선의 개수 - 점선의 개수
    = 2n(n+1)2n(n1)2n(n+1) - 2n(n-1)
    = 4n4n


[풀이2]
실선을 조금씩 옆으로 옮겨 생각하면 전체 실선의 길이는 한 변의 길이가 n인 정사각형의 둘레(=4n4n)가 된다.

0개의 댓글