https://www.acmicpc.net/problem/2903
문제 설명:
백준 2903번 문제는 1x1 정사각형에서 시작해 각 반복마다 점의 개수를 계산하는 문제입니다. 이 문제는 점의 수가 증가하는 규칙을 파악하는 것이 핵심입니다.
문제 이해:
- 시작 상태는 1x1 정사각형입니다.
- 각 반복 단계마다 축의 선분 수가 두 배로 증가합니다. (이런 규칙도 보인다.)
- n번 반복 후 전체 점의 수를 구해야 합니다.
성장 패턴 분석:
단계별로 점의 수를 확인해봅시다:
- 0번째 반복 (초기 상태):
- 점의 수: (2x2) = 4개
- 1번째 반복:
- 각 축의 선분 수가 2배가 됨.
- 점의 수: (2 + 1) x (2 + 1) = 3x3 = 9개
- 2번째 반복:
- 각 축의 선분 수가 2^2이 됨.
- 점의 수: (2^2 + 1) x (2^2 + 1) = 5x5 = 25개
- 3번째 반복:
- 점의 수: (2^3 + 1) x (2^3 + 1) = 9x9 = 81개
공식:
위의 패턴을 분석해보면 n번째 반복 후 점의 수는 다음 공식을 사용하여 계산할 수 있습니다: (2^N+1)x(2^N+1)
코드 구현:
다음은 Java로 작성된 간단한 코드입니다:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int result = (int) Math.pow(2, n) + 1;
System.out.println(result * result);
}
}
-
- 요약:
이 문제는 반복적으로 축의 선분 수가 두 배로 늘어날 때, 전체 점의 수가 어떻게 변하는지를 이해하는 것이 핵심입니다. 공식 를 사용하여 빠르게 점의 개수를 구할 수 있습니다.
- 요약:
어떻게 보면 간단한 수학문제이지만, 이런 규칙을 찾아내는 느낌을 날카롭게 항상 유지하자.
'Problem Solve' 카테고리의 다른 글
| [JAVA] 2798번 블랙잭 🤎2 : 나의 첫 무서운 브루트포스 알고리즘 풀이 (2) | 2024.11.13 |
|---|---|
| [JAVA] 백준 1978번 소수찾기 🤎2 : 소수의 약수 범위에 대한 매우 중요한 생각! (0) | 2024.11.11 |
| [JAVA] 10809번 알파벳 찾기 🤎2 : 아스키코드를 활용한 문자열 갯수 카운팅하기! (1) | 2024.11.10 |
| [JAVA]백준 3052번 🤎2 : (나의 첫 Set 자료구조를 이용한 백준 문제!) (0) | 2024.11.07 |
| [JAVA]백준 2530 : 인공지능 시계🤎4 : 시분초를 잘 활용해야 하는 문제 (1) | 2024.10.20 |