작성일 :

문제 링크

1964번 - 오각형, 오각형, 오각형…

설명

단계마다 규칙적으로 도형의 점이 추가되는 구조를 파악하고 누적하는 문제입니다.

  • n단계까지 오각형을 붙이면 총 몇 개의 점이 생기는지를 계산해야 합니다.
  • 초기에는 1개 점에서 시작합니다.
  • 그림을 통해 규칙을 관찰해보면, 매 단계마다 3 * i + 1개의 점이 추가됩니다 (i는 단계).
  • 결과는 45,678로 나눈 나머지를 출력해야 합니다.

접근법

  • 전체 점의 수를 저장할 변수를 하나 선언하고 0으로 초기화합니다.
  • 0부터 주어진 단계까지 순회하면서, 각 단계에서 3 * i + 1만큼 점을 더해 나갑니다.
  • 이때, 각 단계에서 누적합을 계산할 때마다 45,678로 나눈 나머지를 적용하여 오버플로우를 방지합니다.
  • 반복이 끝난 후, 최종 계산된 값을 출력하면 됩니다.

Code

[ C# ]

1
2
3
4
5
6
7
8
9
10
11
using System;

class Program {
  static void Main() {
    int n = int.Parse(Console.ReadLine());
    int total = 0;
    for (int i = 0; i <= n; i++)
      total = (total + 3 * i + 1) % 45_678;
    Console.WriteLine(total);
  }
}



[ C++ ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <bits/stdc++.h>

using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int n; cin >> n;
  int total = 0;
  for (int i = 0; i <= n; i++)
    total = (total + 3 * i + 1) % 45'678;
  cout << total << "\n";

  return 0;
}