알고리즘/문제 풀이
2903번: 중앙 이동 알고리즘
Themion
2021. 12. 21. 20:17
https://www.acmicpc.net/problem/2903
2903번: 중앙 이동 알고리즘
상근이는 친구들과 함께 SF영화를 찍으려고 한다. 이 영화는 외계 지형이 필요하다. 실제로 우주선을 타고 외계 행성에 가서 촬영을 할 수 없기 때문에, 컴퓨터 그래픽으로 CG처리를 하려고 한다.
www.acmicpc.net
각 단계의 점의 총 개수는 가장 큰 정사각형의 한 변의 점의 개수의 제곱이다. 또한 현재 단계의 한 변의 점의 개수는 직전 단계의 한 변의 점의 개수에 2를 곱한 뒤 1을 뺀 값이므로, 이를 반복문을 이용해 구한 뒤 한 변의 점의 개수의 제곱을 출력하면 된다.
#include <cstdio>
int main() {
// N: 중앙 이동 알고리즘을 실행할 횟수, ans: 현재 점의 수
int N, ans = 2;
scanf("%d", &N);
// 각 단계의 점의 총 개수는 가장 큰 정사각형의 한 변의 점의 개수의 제곱이다
// 현재 단계의 한 변의 점의 개수는
// 직전 단계의 한 변의 점의 개수에 2를 곱한 뒤 1을 뺀 값이므로
// 이를 반복문으로 구현
while (N--) ans += ans - 1;
//한 변에 점이 ans개 있으므로 전체 점의 개수는 ans^2개이다
printf("%d\n", ans * ans);
return 0;
}