[C++, 프로그래머스 - Lv.0] 연속된 수의 합
사용 언어 : C++
< 문제 내용 >
< 생각 >
해당 문제는 힌트를 통해서 풀 수 있었다. 문제는 num과 total이 주어질 때, total을 만들 수 있는 num개의 수를 오름차순으로 구하는 것이 목표였다.
예로, num이 3이고 total이 12라면 3개의 수를 더해서 12가 되는 수들을 찾아서 오름차순으로 반환해야 했다.
이 문제는 num이 짝수인가, 홀수인가를 생각해서 잡을 수 있다.
입출력 예를 보면 num이 홀수일 경우, total / num의 값은 반환된 result의 가운데에 위치해있다.
짝수의 경우, total / num의 값은 반환된 result의 중간 부분에 위치해 있지만, 좌측 원소가 우측 원소에 비해서 1개가 더 많다.
해당 조건에 따라서 시작하는 수, StartNum을 정할 수 있고, StartNum에서 Num번까지 수를 더해주면 total의 값이 나오게 된다.
< 해결 내용 >
#include <string>
#include <vector>
using namespace std;
vector<int> solution(int num, int total) {
vector<int> answer;
int mid = total / num;
int count = num / 2;
int startNum = 0;
startNum = (num % 2 == 0) ? mid - count + 1 : mid - count;
for (startNum; startNum <= mid + count; ++startNum)
{
answer.push_back(startNum);
}
return answer;
}
'코테 > 프로그래머스' 카테고리의 다른 글
[C++, 프로그래머스 - Lv.0] 주사위 게임 3 (0) | 2023.07.19 |
---|---|
[C++, 프로그래머스 - Lv.0] 안전지대 (0) | 2023.07.19 |
[C++, 프로그래머스 - Lv.0] 겹치는 선분의 길이 (0) | 2023.07.04 |
[C++, 프로그래머스 - Lv.0] 정수를 나선형으로 배치하기 (0) | 2023.07.04 |
[C++, 프로그래머스 - Lv.0] 옹알이 (1) (0) | 2023.07.04 |