[프로그래머스][C++] 연속된 수의 합
연속된 수의 합
문제 링크
분석
연속된 수 num
개를 더한 값이 total
이 되는 정수 배열을 오름차순으로 반환해야합니다.
연속된 수는 등차수열로 구할 수 있습니다.
풀이
#include <vector>
using namespace std;
vector<int> solution(int num, int total) {
vector<int> answer;
// 등차수열 합 공식을 활용해 첫 항을 구합니다.
int start = total / num - (num - 1) / 2;
for (int i = 0; i < num; ++i)
{
answer.push_back(start + i);
}
return answer;
}
성능 요약
시간 복잡도는 $O(n)$입니다.
- 연속된 수를 저장하는 반복문 $O(n)$
n
은num
의 크기입니다.
공간 복잡도는 $O(n)$입니다.
- 반환값을 저장하는
vector<int> answer
$O(n)$
테스트 성능
테스트 1 〉 통과 (0.01ms, 4.22MB)
테스트 2 〉 통과 (0.01ms, 4.15MB)
테스트 3 〉 통과 (0.02ms, 3.63MB)
테스트 4 〉 통과 (0.03ms, 3.63MB)
테스트 5 〉 통과 (0.01ms, 4.23MB)
테스트 6 〉 통과 (0.01ms, 3.64MB)
테스트 7 〉 통과 (0.01ms, 4.2MB)
테스트 8 〉 통과 (0.01ms, 3.69MB)
테스트 9 〉 통과 (0.03ms, 4.17MB)
테스트 10 〉 통과 (0.03ms, 3.68MB)
댓글남기기