PS/BOJ

[백준 BOJ] 2903 중앙 이동 알고리즘

Jubil 2018. 11. 20. 06:33
반응형

2903_중앙 이동 알고리즘

링크

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

 

풀이


 

너무 깊게 생각하지 말고 점이 일정한 간격을 두고 채워져 있기 때문에 점을 이용해서 면적을 구한다고 생각해봅시다. 사각형들은 정사각형이기 때문에 가로와 세로가 같습니다.

 

첫 번째 사각형의 가로의 점은 2개가 있습니다. 넓이를 구한다고 생각하고 제곱을 하면 4가 되죠.

두 번째 사각형의 가로의 점은 3개가 있습니다. 넓이를 구한다고 생각하고 제곱을 하면 9가 되죠.

세 번째 사각형의 가로의 점은 5개가 있습니다. 넓이를 구한다고 생각하고 제곱을 하면 25가 되죠.

 

가로의 점은 현재 점 사이사이에 점이 추가되기 때문에 현재 점 - 1만큼 추가됩니다.

, 현재 가로의 점이 cnt라면 다음 가로의 점은 2*cnt - 1이죠.

 

그리고 초기 cnt 2라고 두고 반복문을 이용해서 cnt+=cnt-1 을 해준 후 cnt의 제곱을 출력하면 답이 됩니다.

 

 

코드

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

//2903_중앙 이동 알고리즘

#include <cstdio>

using namespace std;

 

int n, cnt = 2;

 

int main() {

    scanf("%d"&n);

 

    for (int i = 0; i < n; ++i) cnt += cnt - 1;

    

    printf("%d\n", cnt*cnt);

 

    return 0;

}

Colored by Color Scripter

cs

 



반응형