728x90
반응형
문제 요약
- 알고리즘 분류: 집합
- 난이도: Bronze3
- 문제내용:
- 다음의 두 가지 규칙을 따릅니다:
- 각 변의 중앙에 점을 하나 추가
- 각 정사각형의 중심에 점을 하나 추가
- N번 거친 후 점의 수를 출력해라
- 다음의 두 가지 규칙을 따릅니다:
- 사이트: https://www.acmicpc.net/problem/2903
문제풀이
이 문제는 특정 패턴에 따라 그리드를 그릴 때 생성되는 점의 개수를 계산하는 알고리즘 문제입니다. 문제에서 보여주는 이미지를 통해 패턴을 이해할 수 있습니다.
패턴 분석
문제에서 주어진 패턴을 분석해보면:
- N=1일 때, 2×2 사각형에 점 4개가 있습니다.
- N=2일 때, 3×3 사각형에 점 9개가 있습니다.
- N=3일 때, 5×5 사각형에 점 25개가 있습니다.
- N=4일 떼, 9×9 사각형에 점 81개가 있습니다.
알고리즘은 다음과 같이 정의됩니다:
- 정사각형의 각 변에 점을 하나 추가한다.
- 정사각형의 중심에 점을 하나 추가한다.
수학적 규칙
각 단계별로 그리드의 크기와 점의 개수를 살펴보면:
1 | 2×2 | 4 | (2^1 + 1)^2 = 3^2 = 9 |
2 | 3×3 | 9 | (2^2 + 1)^2 = 5^2 = 25 |
3 | 5×5 | 25 | (2^3 + 1)^2 = 9^2 = 81 |
4 | 9×9 | 81 | (2^4 + 1)^2 = 17^2 = 289 |
여기서 패턴을 발견할 수 있습니다:
- N=1: 그리드 크기는 (2^1 + 1) = 3 (한 변에 점 3개)
- N=2: 그리드 크기는 (2^2 + 1) = 5 (한 변에 점 5개)
- N=3: 그리드 크기는 (2^3 + 1) = 9 (한 변에 점 9개)
- N=4: 그리드 크기는 (2^4 + 1) = 17 (한 변에 점 17개)
그리고 총 점의 개수는 그리드 크기의 제곱입니다.
일반화된 공식
N이 주어졌을 때, 점의 총 개수는:
(2^N + 1)^2
결론
이 문제는 패턴을 분석하고 수학적 공식을 도출하는 능력을 테스트합니다. 그리드의 성장 패턴을 분석하면 (2^N + 1)^2이라는 간단한 공식을 얻을 수 있으며, 이를 통해 어떤 N 값에 대해서도 효율적으로 점의 개수를 계산할 수 있습니다.
Code
Python
print((2 ** int(input()) +1) **2)
Java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader((System.in)));
long N = Long.parseLong(br.readLine());
System.out.println((long)Math.pow(Math.pow(2, N) + 1, 2));
}
}
Javascript
var input = require('fs').readFileSync("/dev/stdin", "utf-8").trim();
console.log(Math.pow(Math.pow(2, input) + 1, 2));
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[BAEKJOON]7785 회사에 있는 사람 (0) | 2025.05.12 |
---|---|
[BAEKJOON]13241 최소공배수 (0) | 2025.05.08 |
[BAEKJOON]5639 이진 검색 트리 (2) | 2025.04.29 |
[BAEKJOON]11005 진법 변환 2 (0) | 2025.04.29 |
[BAEKJOON]2745 진법 변환 (0) | 2025.04.24 |