Notice
Recent Posts
Recent Comments
Link
jyamethyst21 님의 블로그
백준 2903번 - 중앙 이동 알고리즘 (PYTHON 풀이) 본문
문제:

처음 문제를 보면 어렵게 느껴질 수 있는데 규칙만 찾으면 간단하게 풀 수 있다.
초기 상태에는 점이 무조건 네개이다. 나는 이걸 전체 개수로 보지 않고 가로 수 기준으로 보았다. 어차피 정사각형이니 세로 개수는 제곱만 해주면 되어서 규칙을 찾기 위해 가로 수만 보았다. 가로 한 변의 점 개수는 2개이다. (초기 규칙)
그 다음 한번 알고리즘이 동작하게 되면 가로 한 변의 점 개수는 3개, 두번 돌면 5개가 된다.
이를 식 형태의 규칙으로 바꾼 뒤 코드로 작성하면 다음과 같다.
풀이:
a=int(input())
print((2**a+1)**2)
처음 안쪽 괄호는 한 변의 개수를 찾는 규칙이고 바깥쪽 괄호는 가로*세로의 개수를 구하기 위해 만든 식이다.
다시 한번 살펴보면, 2는 초기 개수이다. 여기서 사용자로부터 입력 받은 숫자만큼 제곱하고 그 후 1을 더하면 한 변의 중간 지점에 점이 하나 더 찍힌다. 그런 다음 2를 다시 한번 제곱해서 나머지 한변까지 곱해주면 전체 점의 개수가 구해진다.
.
.
이런 문제는 규칙을 찾아내면 좀 더 쉽게 풀 수 있는 것 같다. 어렵게 생각하지말자!
'CODING 💻' 카테고리의 다른 글
| 백준 1085번 - 직사각형에서 탈출 (PYTHON 풀이) (0) | 2025.09.08 |
|---|---|
| 백준 10101번 - 삼각형 외우기 (PYTHON 풀이) (0) | 2025.09.07 |
| 백준 11653번 - 소인수분해 (PYTHON 풀이) (0) | 2025.09.05 |
| 백준 2581번 - 소수 (PYTHON 풀이) (0) | 2025.09.04 |
| 백준 1978번 - 소수 찾기 (PYTHON 풀이) (0) | 2025.09.03 |
