
1부터 100까지의 합을 구하는 파이썬 코드를 몇 가지 방법으로 구현해 드릴게요. 가장 기본적인 방법부터 파이썬의 특성을 활용한 효율적인 방법까지 다양하게 보여드리겠습니다.
#1. for 반복문 사용하기
이 방법은 가장 직관적이고 이해하기 쉬운 방식입니다. for 반복문을 이용해 1부터 100까지의 숫자를 하나씩 total 변수에 더해주는 방식이죠.
total = 0
for i in range(1, 101):
total += i
print(total)
코드 분석
- total = 0: total이라는 변수를 선언하고 초기값을 0으로 설정합니다. 이 변수는 1부터 100까지의 숫자들을 순차적으로 더해나갈 누적 합계를 저장하는 역할을 합니다.
- for i in range(1, 101):: for 반복문을 사용하여 range(1, 101)에 해당하는 숫자들을 차례대로 가져옵니다.
- range(1, 101): 이 함수는 1부터 시작하여 101 바로 앞의 숫자, 즉 100까지의 정수를 순차적으로 생성합니다. 따라서 i는 1, 2, 3, ..., 100이 됩니다.
- total += i: 반복문이 실행될 때마다 현재 i의 값을 total 변수에 더합니다. 이 구문은 total = total + i와 동일한 의미입니다.
- 1회차: i는 1이므로 total은 0 + 1 = 1이 됩니다.
- 2회차: i는 2이므로 total은 1 + 2 = 3이 됩니다.
- ...
- 100회차: i는 100이므로 total은 이전 합계에 100을 더한 값이 됩니다.
- print(total): 반복문이 모두 끝난 후, 최종적으로 계산된 total 변수의 값을 출력합니다. 1부터 100까지의 합은 5050이므로 이 값이 출력됩니다.
#2. while 반복문 사용하기
for 문과 마찬가지로 반복문을 사용하는 방법입니다. 특정 조건(i <= 100)이 만족될 때까지 반복하면서 숫자를 더해줍니다.
total = 0
i = 1
while i <= 100:
total += i
i += 1
print(total)
코드 분석
- total = 0: total 변수를 0으로 초기화합니다. 이 변수는 숫자의 합계를 저장합니다.
- i = 1: i 변수를 1로 초기화합니다. 이 변수는 1부터 시작하여 1씩 증가하며 100까지의 숫자를 나타냅니다.
- while i <= 100:: 이 부분이 while 반복문의 조건입니다. i의 값이 100 이하인 동안 반복문 안의 코드를 계속 실행합니다.
- total += i: 현재 i의 값을 total에 더합니다. total = total + i와 같습니다.
- i += 1: i의 값을 1 증가시킵니다. 이 구문이 없으면 i는 계속 1이 되어 무한 루프에 빠지게 됩니다.
- print(total): while 반복문의 조건(i <= 100)이 거짓이 되면(즉, i가 101이 되면) 반복문이 종료되고, 최종적으로 계산된 total 값을 출력합니다.
이 코드는 while 반복문을 이용해 조건을 직접 제어하며 합계를 구하는 방법입니다. for 반복문이 정해진 범위의 반복에 더 적합하다면, while 반복문은 특정 조건이 만족될 때까지 반복해야 하는 경우에 유용합니다.
3. sum() 함수와 range() 함수 사용하기
이 방법은 파이썬의 내장 함수를 활용해 코드를 간결하게 만듭니다. range(1, 101)이 1부터 100까지의 숫자를 생성하고, sum() 함수가 이 숫자들의 합을 계산해줍니다. 코드가 훨씬 짧아지고 가독성이 높아집니다.
print(sum(range(1, 101)))
코드 분석
- range(1, 101): 이 함수는 1부터 시작하여 101 바로 전까지, 즉 1부터 100까지의 정수들을 순차적으로 생성합니다. 이는 리스트나 튜플과 같은 자료구조를 만들지 않고도 숫자를 하나씩 반복할 수 있는 range 객체를 반환합니다. 메모리 효율성 측면에서 매우 유용합니다.
- sum(...): 이 함수는 파이썬의 내장 함수로, 괄호 안의 반복 가능한(iterable) 객체(예: 리스트, 튜플, range 객체 등)에 있는 모든 요소들의 합을 계산하여 반환합니다.
- print(...): 최종적으로 sum() 함수가 계산한 결과값을 화면에 출력합니다. range(1, 101)이 생성한 1부터 100까지의 숫자의 합은 5050이므로 이 값이 출력됩니다.
이 코드는 for나 while 반복문을 직접 사용하지 않고도 같은 결과를 얻을 수 있으며, 코드가 매우 간결하고 파이썬의 철학(Pythonic)에 부합합니다.
#4. 리스트 컴프리헨션(List Comprehension) 사용하기
리스트 컴프리헨션은 리스트를 더 간결하고 효율적으로 생성하는 파이썬의 기능입니다. 이 방법을 사용해 1부터 100까지의 숫자를 담은 리스트를 만들고 sum() 함수로 합을 구합니다.
print(sum([i for i in range(1, 101)]))
코드 분석
- [i for i in range(1, 101)]: 이 부분은 **리스트 컴프리헨션(List Comprehension)**입니다. for 반복문과 리스트 생성을 한 줄로 압축한 파이썬의 특수 문법이에요.
- range(1, 101): 1부터 100까지의 숫자를 순차적으로 생성합니다.
- for i in ...: range에서 생성된 각 숫자를 변수 i에 할당합니다.
- [i ...]: i의 값을 리스트의 요소로 추가합니다.
- 결과적으로, 이 구문은 [1, 2, 3, ..., 100]과 같은 리스트를 생성합니다.
- sum(...): 파이썬의 내장 함수로, 괄호 안의 반복 가능한 객체(여기서는 리스트)에 있는 모든 요소들의 합계를 계산합니다.
- print(...): sum() 함수가 계산한 최종 결과, 즉 1부터 100까지의 합인 5050을 화면에 출력합니다.
이 코드는 리스트를 생성하는 데 추가적인 메모리를 사용한다는 점을 제외하면, 코드가 짧고 가독성이 높아 파이썬 초보자도 쉽게 이해할 수 있다는 장점이 있습니다. sum(range(1, 101)) 코드에 비해 약간의 메모리를 더 사용하지만, 복잡한 리스트를 간결하게 만들 때 매우 유용하게 쓰입니다.
#5. 수학 공식(가우스 공식) 사용하기
마지막으로, 코딩과는 별개로 수학 공식을 이용하는 방법입니다. 1부터 n까지의 합은 n * (n + 1) / 2라는 공식으로 구할 수 있습니다. 1부터 100까지의 합은 100 * (100 + 1) / 2로 계산할 수 있습니다. 이 방법이 가장 빠르고 효율적입니다.
n = 100
total = n * (n + 1) // 2
print(total)
코드 분석
- n = 100: 변수 n에 100이라는 값을 할당합니다. 이 값은 합계를 구할 마지막 숫자를 나타냅니다.
- total = n * (n + 1) // 2: 이 부분은 가우스 공식()을 파이썬 코드로 구현한 것입니다. 이 공식은 1부터 n까지의 연속된 자연수의 합을 계산합니다.
- n * (n + 1): 100 * (100 + 1), 즉 100 * 101을 계산하여 10100이 됩니다.
- // 2: 정수 나눗셈 연산자입니다. 10100을 2로 나누어 정수 몫인 5050을 반환합니다. 일반적인 나눗셈 연산자(/)를 사용하면 부동소수점 값인 5050.0이 나오므로, 정수 합계를 원한다면 //를 사용하는 것이 좋습니다.
- print(total): 최종적으로 계산된 합계인 5050을 출력합니다.
이 방법은 반복문을 사용하지 않고 단 한 번의 연산만으로 결과를 도출하기 때문에, 다른 방법들에 비해 실행 속도가 압도적으로 빠르다는 장점이 있습니다. 이 코드는 효율성이 가장 중요한 상황에 적합한 방법입니다.

'파이썬(문제풀이)' 카테고리의 다른 글
| 파이썬 숫자가 주어지면 소수인지 아닌지 판별 (0) | 2025.09.10 |
|---|---|
| 파이썬 구구단 출력 (0) | 2025.09.09 |
| 파이썬 날짜와 시간을 출력하는 다양한 방법 (0) | 2025.09.09 |
| 파이썬 - 평균 점수 구하기 (0) | 2025.09.09 |
| 파이썬 모래시계 패턴 별찍기 (0) | 2025.09.09 |