#include <stdio.h>
int num[10000][41]={0};
int cal(int n); //for문으로 하는 법
//int re(int n, int a, int length); //재귀로 하는 법
int main(void)
{
int n, i, c;
scanf("%d", &n);
num[0][1]=1;
//c=re(n, 1, 1);
c=cal(n);
for(i=0; num[i][n]!=0; i++)
{
printf("%d ", num[i][n]);
}
return 0;
}
int cal(int n)
{
int i, j, s=0, c=0, cnt=0, length=1;
for(i=1; i<=n; i++)
{
s=0;
c=0;
cnt=0;
for(j=0; j<=length; j++)
{
if(num[j][i]!=s)
{
if(s!=0)
{
num[cnt][i+1]=c;
num[cnt+1][i+1]=s;
cnt+=2;
c=0;
}
s=num[j][i];
c++;
}
else
c++;
}
length=cnt;
}
return length;
}
/*int re(int n, int a, int length)
{
if(n==a)
return length;
int i, s=0, c=0, cnt=0;
for(i=0; i<=length; i++)
{
if(num[i][a]!=s)
{
if(s!=0)
{
num[cnt][a+1]=c;
num[cnt+1][a+1]=s;
cnt+=2;
c=0;
}
s=num[i][a];
c++;
}
else
c++;
}
re(n, a+1, cnt);
}*/
2018.06.09 10:20
정올 - 실전대비 - 개미수열(1354) - Runtime Error
조회 수 388 추천 수 0 댓글 0