Problem-Solving/BOJ
[BOJ/백준][Silver5] 2635 : 수 이어가기 (C++)
has2
2022. 7. 21. 23:00
https://www.acmicpc.net/problem/2635
2635번: 수 이어가기
첫 번째 수가 주어진다. 이 수는 30,000 보다 같거나 작은 양의 정수이다.
www.acmicpc.net
[난이도] Silver5
[유형] 브루트포스
[풀이]
두번째 수를 1~N까지 모든 수로 바꿔보면서 수열을 구해주면 됩니다.
#include <cstdio>
#include <vector>
using namespace std;
int N;
vector<int> ans;
int main(){
scanf("%d",&N);
for(int i=1;i<=N;i++){
vector<int> tmp;
tmp.push_back(N);
tmp.push_back(i);
for(int j=1;;j++){
if(tmp[j-1]-tmp[j]<0) break;
tmp.push_back(tmp[j-1]-tmp[j]);
}
if(tmp.size()>ans.size()) ans=tmp;
}
printf("%d\n",ans.size());
for(auto v : ans) printf("%d ",v);
}
https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Silver5/2635.cpp