https://www.acmicpc.net/problem/2635
풀이법
1) 실버 수준의 문제로 구현이 어렵지 않으며 brute force로 답을 찾으면 되는 문제이다.
2) 들어 오는 입력 값이 30000 이하의 양수이므로, 이보다 작은 값을을 for문을 통해서 반복시켰으며 음수가 나오는 경우 동적 배열에 새로운 값을 넣는 것을 중단 시켰다.
3) 이후 만들어진 배열의 크기와 현재 최대 사이즈를 비교하여, 만들어진 배열의 크기가 더 큰 경우, 최종 배열에 담고, 사이즈를 갱신시켰다.
#include <string>
#include <iostream>
#include <vector>
#include <algorithm>
#include <math.h>
#include <cstring>
using namespace std;
int n;
vector<int> vec;
int vecSize = 0;
int main()
{
cin.tie(0);
ios::sync_with_stdio(false);
cin >> n;
for (int i = 1; i <= n; i++)
{
vector<int> temp;
temp.push_back(n);
temp.push_back(i);
int j = 0;
while (true)
{
if (temp[j] - temp[j + 1] >= 0)
{
temp.push_back(temp[j] - temp[j + 1]);
j++;
}
else
break;
}
if (vecSize < temp.size())
{
vec = temp;//벡터란 값에 temp담음
vecSize = temp.size();
}
}
cout << vecSize << "\n";
for (int i = 0; i < vec.size(); i++)
{
cout << vec[i] << " ";
}
}
'Coding_Test_C++' 카테고리의 다른 글
BaekJoon 2628번: 종이 자르기 (0) | 2021.08.15 |
---|---|
BaekJoon 2615번: 오목(C++) (0) | 2021.08.14 |
BaekJoon 14500번: 테트로미노(C++) (0) | 2021.08.08 |
BaekJoon 5014번: 스타트 링크(C++) (0) | 2021.08.06 |
BaekJoon 2636번: 치즈(C++) (0) | 2021.08.05 |