#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
조회 수 362 추천 수 0 댓글 0