4가지 수식을 비교할 예정.
프로그래머스 python 코딩테스트 입문
Level 0. 짝수의 합.
정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.
정답 확인
1. for문 + if 조건문 (기본)
def solution(n):
answer = 0
for i in range(1, n + 1): # 1부터 n까지 반복
if i % 2 == 0: # 짝수인지 확인
answer += i # 짝수라면 더하기
return answer
# 테스트
print(solution(10)) # 30
print(solution(4)) # 6
2. for문에서 바로 짝수 반복 (더 효율)
def solution(n):
answer = 0
for i in range(2, n + 1, 2): # 2부터 n까지 2씩 증가
answer += i
return answer
# 테스트
print(solution(10)) # 30
print(solution(4)) # 6
3. 리스트 컴프리헨션 + sum() (깔끔. python 방식)
def solution(n):
answer = sum (i for i in range(2, n + 1, 2))
return answer
4. 등차수열 공식 (수학적 방식, 가장 빠름)
def solution(n):
return (n // 2) * (2 + n) // 2
# 테스트
print(solution(10)) # 30
print(solution(4)) # 6
함수 정리
range(start, stop, step)
start
: 시작 숫자 (포함)stop
: 종료 숫자 (포함 안됨)step
: 증가값stop
값이 포함되려면, n+1
을 해줘야 n
값이 포함.예를 들면, 2부터, n까지, 2씩 증가.
= range (2, n+1, 2)
i for i in range()
sum(i for i in range(2, n+1, 2) if i > 4)
if
조건 추가 가능 -> SQL의 WHERE
처럼 사용 가능!등차수열 공식