짝수의 합
2024. 7. 23. 18:00ㆍ코딩테스트 입문
https://school.programmers.co.kr/learn/courses/30/lessons/120831
문제 설명
정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.
제한사항
- 0 < n ≤ 1000
입출력 예
n | result |
10 | 30 |
4 | 6 |
입출력 예 설명
입출력 예 #1
- n이 10이므로 2 + 4 + 6 + 8 + 10 = 30을 return 합니다.
입출력 예 #2
- n이 4이므로 2 + 4 = 6을 return 합니다.
짝수를 더하기만 하면 되는 간단한 문제입니다.
이 문제를 푸는 제일 쉬운 방법은 n까지 짝수인 값을 반복문을 사용해서 더하는 방법이고요.
수학적으로 푸는 방법도 있습니다.
등차수열의 합은 공식을 사용할 수 있습니다.
1부터 n까지의 합을 더하면 n(n+1)/2가 되는 것처럼, 이 문제에도 똑같이 적용할 수 있습니다.
이 문제는 짝수만 적용하기 때문에, n 대신 2k를 사용합니다.
2k * (2k + 1) / 2 = k * (2k + 1)
k는 n을 2로 나눈 값이 됩니다. 홀수여도 상관없도록 몫을 사용하면 됩니다.
파이썬으로 이 공식을 사용해 풀어보겠습니다.
def solution(n):
answer = (n // 2) * (n // 2 + 1)
return answer
solution=lambda n:(n//2) * (n//2 + 1)
위는 함수를 선언해서 값을 리턴하는 방법이고, 아래는 람다식을 이용한 방법입니다.
어느 방법이든 상관은 없습니다.