두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
code - 1차
def solution(a, b):
result = 0
if b >= a:
for i in range(a, b+1):
result += i
return result
else:
for i in range(b, a+1):
result += i
return result
code - 2차
# sum + 리스트 컴프리헨션
def solution(a, b):
if a > b:
a, b = b, a
return sum([i for i in range(a, b+1)])
# for 반복문
def solution(a, b):
result = 0
if a > b:
a, b = b, a
for i in range(a, b+1):
result += i
return result
- sum + 리스트 컴프리헨션
- 리스트를 먼저 생성해야 하기 때문에 메모리 사용량이 더 많아집니다.
- 리스트 생성과 메모리 할당 과정이 포함되어 있어, 연산 속도가 다소 느려질 수 있습니다.
- for 반복문
- 리스트를 만드는 과정이 없고, 각 숫자를 직접 더하기 때문에 연산 속도가 더 빠릅니다.
- 범위가 클수록 이 차이는 더욱 커질 것이기 때문에, 두 번째 코드가 더 유리할 것입니다.
https://github.com/seonmin5/codingtest_Python
GitHub - seonmin5/codingtest_Python
Contribute to seonmin5/codingtest_Python development by creating an account on GitHub.
github.com
반응형
'Python' 카테고리의 다른 글
[Python/level 0] 날짜 비교하기 - 181838, int(date1 > date2) (0) | 2024.08.31 |
---|---|
[Python/level 0] 빈 배열에 추가, 삭제하기 - 181860, enumerate, extend, del (1) | 2024.08.31 |
[Python/level 0] 배열의 원소만큼 추가하기 - 181861 (1) | 2024.08.31 |
[Python/level 0] 숫자 찾기 - 120904, enumerate (0) | 2024.08.31 |
[Python/level 1] 정수 내림차순으로 배치하기 - 12933, sorted(reverse = True) (0) | 2024.08.31 |