문제는 간단하다 매개변수로 전달받는 두 수 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의 차의 절댓값을 사용하여 항의 개수를 구한다. 그리고 연속된 정수의 합이므로 무조건 답은 정수로 나오기 때문에 // 연산을 사용하여 정수값을 반환하도록 하였다. 예제에 대해 확인한 결과 무리없이 답이 도출되었다.
채점결과 무리없어 통과하는 것을 확인할 수 있다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[python] 문자열 내 마음대로 정렬하기(연습문제) (0) | 2020.03.22 |
---|---|
[C++] 두 정수 사이의 합(연습문제) (0) | 2020.03.21 |
[C++] 같은 숫자는 싫어(연습문제) (0) | 2020.03.20 |
[python] 같은 숫자는 싫어(연습문제) (0) | 2020.03.20 |
[C++] 같은 숫자는 싫어(연습문제) (0) | 2020.03.18 |
댓글