© 2025 anveloper.dev
GitHub·LinkedIn·Contact

목차

  • 문제
  • 입력
  • 출력
  • 예제
  • 풀이
  • 코드
  • 복잡도
풀이 목록으로 돌아가기

BOJ 2903 - 중앙 이동 알고리즘

2023-09-08
BOJ
브론즈 III
java
원본 문제 보기
수학

문제

BOJ 2903 - 중앙 이동 알고리즘

정사각형 격자에서 중앙 이동 알고리즘을 N번 수행한 후 점의 개수를 구하라. 매 단계마다 각 정사각형의 변의 중점과 중심에 점을 추가한다.

입력

N이 주어진다 (1 이상 15 이하).

출력

N번 수행 후 총 점의 개수를 출력한다.

예제

입력출력
19
225

풀이

각 단계마다 한 변의 점 개수가 2배+1이 되는 규칙을 이용하여 공식으로 계산한다.

  1. 초기 상태에서 한 변의 점 개수는 2개이다
  2. N번 수행 후 한 변의 점 개수는 2^N + 1개이다
  3. 총 점의 개수는 (2^N + 1)^2이다

핵심 아이디어: 매 단계마다 변이 2등분되므로 한 변의 점 개수가 2^N + 1로 증가하며, 전체 격자점은 그 제곱이다.

코드

package day749;
 
import java.io.*;
 
public class Day734BOJ2903중앙이동알고리즘 {
  public static void main(String[] args) throws Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 
    int n = Integer.parseInt(br.readLine());
    br.close();
    System.out.println((int) Math.pow(Math.pow(2, n) + 1, 2));
  }
}

복잡도

  • 시간: O(1)
  • 공간: O(1)