짝수의 합

2024. 7. 23. 18:00코딩테스트 입문

https://school.programmers.co.kr/learn/courses/30/lessons/120831

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 설명
정수 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)

위는 함수를 선언해서 값을 리턴하는 방법이고, 아래는 람다식을 이용한 방법입니다.

어느 방법이든 상관은 없습니다.

'코딩테스트 입문' 카테고리의 다른 글

외계행성의 나이  (0) 2024.07.25
배열 자르기  (0) 2024.07.24
양꼬치  (1) 2024.07.22
각도기  (0) 2024.07.21
특정 문자 제거하기  (1) 2024.07.20