https://www.acmicpc.net/problem/2903
2903번: 중앙 이동 알고리즘
문제 상근이는 친구들과 함께 SF영화를 찍으려고 한다. 이 영화는 외계 지형이 필요하다. 실제로 우주선을 타고 외계 행성에 가서 촬영을 할 수 없기 때문에, 컴퓨터 그래픽으로 CG처리를 하려고 한다. 외계 지형은 중앙 이동 알고리즘을 이용해서 만들려고 한다. 알고리즘을 시작하면서 상근이는 정사각형을 이루는 점 4개를 고른다. 그 후에는 다음과 같은 과정을 거쳐서 지형을 만든다. 정사각형의 각 변의 중앙에 점을 하나 추가한다. 정사각형의 중심에 점을 하나
www.acmicpc.net
다음 단계로 넘어갈 때마다 한 변(가장 큰 사각형의 한 변)에서 각 변에 점이 찍히니까
N 단계의 한 변의 점의 개수는 N-1 단계의 한 변의 점의 개수 각 변의 개수이다.
즉, N 단계의 한 변의 점의 개수는 결국 N-1 단계의 한 변의 점의 개수 + 변의 개수이다.
우리가 구하는 점의 개수는 한 변의 점의 개수의 제곱이니,
이를 코드로 작성하면
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include <stdio.h>
int main()
{
int n;
int p = 2, e = 1;
// p = 점, e = 변
// 처음에 큰 사각형의 각 변의 점은 2개 변은 1개
scanf("%d",&n);
for(int i = 0; i < n; i++)
{
int tp = p;
p += e;
e += tp - 1;
}
printf("%d", p *p);
}
|
cs |
'Problem Solving' 카테고리의 다른 글
[BOJ 1331] 나이트투어 (0) | 2019.03.10 |
---|---|
[BOJ 1037] 약수 (0) | 2019.03.10 |
[BOJ 2869] 달팽이는 올라가고 싶다 (0) | 2019.03.03 |
[BOJ 2004] 조합 0의 개수 (0) | 2019.03.03 |
[BOJ 1676] 팩토리얼 0의 개수 (0) | 2019.03.03 |