연속된 수의 합

문제 링크

연속된 수의 합

분석

연속된 수 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)$
    • nnum의 크기입니다.

공간 복잡도는 $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)

Programmers 카테고리 내 다른 글 보러가기

댓글남기기