반응형
안녕하세요!
Wooji입니다.
오늘은 백준 2903번 중앙 이동 알고리즘을 풀어보았습니다.
배경지식
이 문제는 배경지식이라고는 필요 없고 규칙을 어떻게 간단하게 찾느냐가 관건입니다.
논리 및 아이디어
- 단순히 문제를 풀기 전 논리일 뿐입니다. 틀릴 확률이 다분합니다.
- N 단계에서 N-1 단계의 점은 영향을 주지 않으므로 그대로 더하면 되겠다.
- 한 단계가 더해질 때마다 사각형 하나에 점이 5개씩 생긴다.
- 겹치는 점은 N단계에서 (2^(N-1))× (2^(N))×2 개다.
- 최종 식은 [(N-1) 단계의 점의 개수] + 5 × (4^N) - (2^(N-1))× (2^(N))×2
나의 코드
num=int(input())
new=4
for i in range(num):
new=new+5*4**(i)-(2**(i)-1)*(2**(i))*2
print(new)
규칙을 찾아서 피보나치수열처럼 코드를 짜주었는데... 현실은 더 쉬운 규칙이 있었다는 것..
최적의 코드
이번 문제의 최적의 코드는 다른 분의 블로그를 참조했습니다. 출처는 맨 아래에 남겨놓겠습니다.
N = int(input())
print((2**N+1)**2)
더 쉬운 규칙으로는 (한 변의 점의 개수)의 제곱
그리고 한 변의 점의 개수는 2,3,5,9,17로 커졌고, 1,2,4,8 만큼씩 더해진 것.
배운 점 및 보완할 점
- 쉬운 규칙을 찾도록 노력하자.... 예제에서 9,25를 본 순간 제곱수라는 것을 떠올렸다면,,,
출처
백준 2903번 중앙 이동 알고리즘 파이썬
귝https://www.acmicpc.net/problem/2903 2903번: 중앙 이동 알고리즘 상근이는 친구들과 함께 SF영화를 찍으려고 한다. 이 영화는 외계 지형이 필요하다. 실제로 우주선을 타고 외계 행성에 가서 촬영을 할
thingjin.tistory.com
반응형
'Python > 백준 문제풀이' 카테고리의 다른 글
[백준 파이썬 4134번] 다음소수 모든 풀이 비교 분석 (0) | 2024.10.30 |
---|---|
[백준 13909번 파이썬]'창문닫기' 모든 풀이 비교 분석 (0) | 2024.10.17 |
[백준 2485번 파이썬]'가로수' 모든 풀이 비교 분석 (0) | 2024.10.15 |
[백준 11653번 파이썬]'소인수분해' 모든 풀이 비교 분석 (2) | 2024.09.02 |
백준 문제 풀이를 시작해볼까 합니다! (0) | 2024.09.02 |