반복문을 사용하여 계단의 층수를 합산
반복문을 사용하여 계단의 층수를 합산하는 알고리즘입니다. 이 알고리즘은 큰 입력값을 처리할 때 매우 오랜 시간이 걸리는 문제점을 보여줍니다.

코드 설명
n = 1000000000 # 10억
result = 0
for i in range(1, n + 1):
result += i
print(f"계단이 {n} 층일 때 필요한 나무 블록의 개수는 {result} 개")
1. 변수 n은 계단의 층수를 나타내며, 10억 층으로 설정되어 있습니다.
2. result 변수는 계단의 층수를 합산한 결과를 저장하는 역할을 합니다.
3. for 반복문을 통해 1부터 n까지의 모든 숫자를 result에 더합니다.
4. 마지막으로, 결과를 출력합니다.
결과
이 코드의 결과는 n층 계단을 만드는 데 필요한 총 나무 블록의 개수를 계산하는 것입니다. 예시로는 n이 10억인 경우로, 최종 결과는 500000000500000000이 됩니다.
문제점 및 해결 방안
시간이 오래 걸림: n의 값이 클수록 반복문을 돌리는 시간이 매우 오래 걸리게 됩니다.
해결 방안: 수학적 공식을 사용하면 시간문제를 해결할 수 있습니다. 계단의 층수를 합산하는 공식은 $$\frac{n \times (n + 1)}{2}$$(주: 라텍스 수식)입니다. 이를 활용하여 반복문 없이도 빠르게 계산할 수 있습니다.
LaTeX 수식에서 \frac는 분수를 표현하는 명령어입니다. \frac은 "fraction"의 약자로, 분자와 분모를 지정하여 수식을 분수 형태로 나타낼 때 사용합니다.
개선된 코드
n = 1000000000 # 10억
result = n * (n + 1) // 2
print(f"계단이 {n} 층일 때 필요한 나무 블록의 개수는 {result} 개")
이렇게 개선된 코드에서는 반복문 없이 한 번의 계산만으로 결과를 얻을 수 있습니다.
'실버를 위한 코딩 > 오늘의 파이썬 팁' 카테고리의 다른 글
파이참에서 프로젝트 삭제 (1) | 2024.12.01 |
---|---|
코딩에서 가독성을 높이기 위한 배려 (1) | 2024.11.30 |
파이썬 전용 폰트 사용하기 (1) | 2024.11.29 |
조건문을 사용한 숫자 3개를 정렬하는 알고리즘 (1) | 2024.11.10 |
리스트 컴프리헨션(List Comprehension) (2) | 2024.09.20 |