프로그래머스_Python_짝수의 합_등차수열, FOR+IF, i for i in range

HEE·2025년 3월 12일
0
post-thumbnail

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
  • 코드 길이 : 매우 짧음.
  • 속도 : 중간
  • 가독성 : pythonic 직관적

4. 등차수열 공식 (수학적 방식, 가장 빠름)

def solution(n):
    return (n // 2) * (2 + n) // 2
# 테스트
print(solution(10))  # 30
print(solution(4))   # 6
  • 코드 길이 : 짧다
  • 속도 : 가장 빠름
  • 가독성 : 수학적 사고 필요

함수 정리

  1. range(start, stop, step)
  • start : 시작 숫자 (포함)
  • stop : 종료 숫자 (포함 안됨)
  • step : 증가값
    종료값 즉 stop값이 포함되려면, n+1을 해줘야 n값이 포함.

예를 들면, 2부터, n까지, 2씩 증가.
= range (2, n+1, 2)

  1. i for i in range()
    제너레이터 표현식으로 리스트 없이 값 생성 가능.
  • 추가 예제
    짝수 중에서도 4보다 큰 값만 더하기.
sum(i for i in range(2, n+1, 2) if i > 4)
  • if조건 추가 가능 -> SQL의 WHERE처럼 사용 가능!

등차수열 공식

profile
ALL IS WELL

0개의 댓글