본문 바로가기
알고리즘/프로그래머스

[python] 두 정수 사이의 합(연습문제)

by 민-Zero 2020. 3. 21.

문제는 간단하다 매개변수로 전달받는 두 수 a, b 사이에 속한 모든 정수의 합을 반환하면 된다.

즉, a=1 b=5 라면 1+2+3+4+5=15 이므로 15를 반환하면 된다. 주의할 점은 a 가 b보다 작다는 보장이 없는 것이다.

 

설계 및 구현

구현을 위해 주어진 함수는 매개변수 a, b를 가지는 간단한 함수이다. 해당 문제는 등차수열의 합을 사용하면 쉽게 풀린다. 주어지는 두 수 a, b사이의 공차가 1인 수열의 합을 생각하면 자동적으로 a, b사이의 모든 정수의 합을 구할 수 있다. 공차 : d, 항의 개수 : n, 첫번째 항: a 와 b 중 작은수, n번째 항: a 와 b중 큰 수 사용하여 등차수열의 합을 구하면

① n(a + b)/2

② n(2a + (n-1)d)/2  (a가 첫번째 항이라고 가정할때)

으로 구할 수 있다.

첫번째 공식을 사용하여 해결했다. 항의 개수 n은 a-b+1 로 구할 수 있다 단 a, b의 대소관계가 정해져 있지 않으므로 a, b의 차의 절댓값을 사용하여 항의 개수를 구한다. 그리고 연속된 정수의 합이므로 무조건 답은 정수로 나오기 때문에 // 연산을 사용하여 정수값을 반환하도록 하였다. 예제에 대해 확인한 결과 무리없이 답이 도출되었다.

 

채점결과 무리없어 통과하는 것을 확인할 수 있다.

댓글