최대 1 분 소요

Question

Q Q2


Solution

  • elements의 각 요소에 대하여 1 ~ size 각각의 길이에 대한 합을 구한다.
  • 중복되는 수는 제거 할 것이기 때문에 구해진 합을 set에 저장한다.
  • 끝이 이어진 것처럼 하기 위해선 ‘idx % size’를 하면 된다.

Cord

#include <string>
#include <vector>
#include <unordered_set>

using namespace std;

int solution(vector<int> elements)
{
    int answer = 0;
    int size = elements.size();
    unordered_set<int> res;

    // i 부터 길이가 각각 1 ~ size 일때의 합 구하기
    for (int i = 0; i < size; ++i)
    {
        int sum = 0;
        for (int j = i; j < size + i; ++j)
        {
            // (idx % size) 하면 끝이 이어진 것 처럼 인접한 다음 수를 알 수 있다.
            sum += elements[j % size];   
            res.insert(sum);
        }
    }

    return answer = res.size();
}

Result

Result