충근이는 친구와 함께 인기 SF 소설 "Chicks in space 13"을 영화로 만드려고 한다. SF 장르 영화의 특성상 컴퓨터 그래픽 작업이 많아, 영화 전체를 녹색 스크린 앞에서 촬영하고 나중에 CG 처리 하기로 결정했다.
충근이는 인공지형을 만드는 가장 좋은 방법은 midpoint displacement 알고리즘이라고 알고 있다.
알고리즘을 시작하기 위해 충근이는 4개의 점으로 정사각형을 만들고, 다음 단계를 수행한다.
-
정사각형 각 변의 중앙에 새로운 점을 추가한다.
-
정사각형의 정확한 중심에 점을 하나 추가한다. 이 때, 이 점은 1번에서 추가된 점들을 연결한 선의 중앙에 위치하게 된다.
이 두 단계를 수행하게 되면, 4개의 새로운 정사각형이 생긴다. 충근이는 만족스러운 결과물이 나올때까지 이 알고리즘을 계속 반복할 생각이다.
다음 그림은 알고리즘을 2번 실행하는 과정을 보여준다.
충근이는 일부 점들이 하나 이상의 정사각형에 속한다는 것을 알아챘다. 메모리 소모를 줄이기 위해 이러한 점을 한 번만 계산하고 저장한다.
이제 N번의 알고리즘 실행했을 때, 총 몇 개의 점을 메모리에 저장해야 하는지 구하시오.