본문 바로가기
Problem Solving

[BOJ 1964] 오각형, 오각형, 오각형…

by Ladun 2019. 3. 17.

https://www.acmicpc.net/problem/1964

 

1964번: 오각형, 오각형, 오각형…

첫째 줄에 N(1≤N≤10,000,000)이 주어진다.

www.acmicpc.net


위 문제는 N단계 후 오각형의 점이 몇 개인지 알아내는 문제이다.
 
위 문제를 풀기 위해 저는 두 가지 방법으로 나누어 생각했습니다.
 
----------------------------------------------------------------------
1). 외곽의 점은 몇 개인가
 
2). 그 외의 점들, 즉 안쪽에 있는 오각형의 점들은 몇 개인가.

----------------------------------------------------------------------


1)번의 경우 각 단계마다 오각형의 각 변에 점이 1개씩 추가가 된다.
 
쉽게 말해 매 단계 마다 점이 5개씩 늘어난다.
 
N단계일 때 가장 바깥쪽의 점의 개수는 N * 5가 된다.
 
2)번의 경우 1단계에서는 안쪽에 점이 없고,
 
2단계부터 2
 
3단계(2 + 3)
 
4단계(2 + 3 + 3)개 가 된다.
 
즉, 2단계 이후부터 안쪽에 있는 변의 개수만큼 점이 추가가 된다.
 
1), 2) 번의 경우로 나누어 해당 원리에 맞게 코드를 짜면 아래 코드가 나온다.
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#define ll long long int
 
int main()
{
 
    int N;
    scanf("%d"&N);
    ll sum = (5 * N) % 45678;
 
    for (int i = 2; i <= N; ++i)
    {
        sum = (sum + ((i - 2* 3 + 2)) % 45678;
    }
 
    printf("%lld", sum);
    return 0;
}
 
cs

 

 

'Problem Solving' 카테고리의 다른 글

[BOJ 2960] 에라토스테네스의 체  (0) 2019.12.30
[BOJ 1629] 곱셈  (0) 2019.03.17
[BOJ 1978] 소수 찾기  (0) 2019.03.16
[BOJ 1331] 나이트투어  (0) 2019.03.10
[BOJ 1037] 약수  (0) 2019.03.10