문제
https://softeer.ai/practice/6280
해설
이 문제는 딱 한가지 규칙만 알아내면 코드를 무척이나 쉽게 작성할 수 있다. 위의 사진에서 보면 처음의 시작은 4개의 점으로 시작되고, 한 단계가 지나게 되면 9개, 그리고 두 단계를 거치면 25개로 늘어난다.
규칙을 파악해보면
1. 우선 각 변에 존재하는 점의 갯수의 제곱값이 모든 점의 갯수가 된다는 점이며,
2. 마지막으로 한단계가 지날수록 각 변에서의 점의 갯수가 (이전 단계의 변의 갯수 - 1) 만큼 늘어난다는 점이다.
이를 토대로 한 단계가 지나게 되면 모든 점의 갯수는 결국 [(전 단계의 변에서의 점의 갯수)+(전 단계의 변에서의 점의 갯수-1)]의 제곱이 된다는 것을 어렵지 않게 알 수가 있다. 따라서 각 단계마다 변에서의 점의 갯수를 2번 규칙대로 계속 늘려주고, 마지막에 출력해줄 때는 마지막 단계를 모두 거친 후 얻게 되는 변에서의 점의 갯수의 제곱을 출력해주면 된다.
코드
import sys
# 진행할 단계 수
N = int(input())
# 초기값의 한변의 갯수
result = 2
# 규칙을 토대로 늘어나는 한 변의 수를 계산
for i in range(N):
result = (result+(result-1))
print(result**2)
결과
'알고리즘 > 소프티어' 카테고리의 다른 글
[파이썬] Softeer 연습문제 #17. H-클린알파 완벽해설 (1) | 2024.01.03 |
---|---|
[파이썬] Softeer 연습문제 #16. 스마트 물류 완벽해설 (1) | 2024.01.02 |
[파이썬] Softeer 연습문제 #14. 동계 테스트 시점 예측 완벽해설 (2) | 2023.12.30 |
[파이썬] Softeer 연습문제 #13. 8단 변속기 완벽해설 (0) | 2023.12.20 |
[파이썬] Softeer 연습문제 #12. 바이러스 완벽해설 (1) | 2023.12.19 |