반응형
첫째줄 부터 2n-1 줄까지 별을 찍는 프로그램을 작성하라.
ex ) n = 5일때
*********
*******
*****
***
*
***
*****
*******
*********
일반적으로 별찍기 문제는 쉽다고 생각 할 수도 있으나, 이 문제도 얼마나 알고리즘을 최적화 하냐에 따라서
코딩의 질이 달라 질 수 있을 것 같다. 별찍기 문제는 꼭 한번은 짚고 넘어가 볼 만한 문제인 것 같다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #include <stdio.h> int main() { int i,j,n; scanf("%d",&n); for(i = 1; i <= n-1 ; i ++) // 상단 { for(j = 1; j <= i-1; j++) printf(" "); for(j = 1; j <= 2*(n-i)+1 ; j++) printf("*"); //for(j = 1; j <= 2*i -2 ; j++) printf(" "); // 끝에는 띄어쓰기 불필요(여기서는) printf("\n"); } for(i = 1; i <= n-1 ; i ++) printf(" "); // 중단 printf("*"); //for(i = 1; i <= n -1 ; i++) printf(" "); // 끝에는 띄어쓰기 불필요(여기서는) printf("\n"); for(i = 1; i <= n-1; i++) // 하단 { for(j = 1; j<= n-i-1; j++) printf(" "); for(j = 1; j <= 2*i+1; j++) printf("*"); //for(j = 1; j <=n-i-1 ; j++) //{ printf(" "); } printf("\n"); } return 0; } | Crocus |
- 숏코딩 -
( 이런 것이 있다는 것만 알아두기 )
1 2 3 4 5 6 7 | i; main(j,n) { for(scanf("%d",&n); 2*n-++i; puts("")) for(j=0;n+abs(n-i)-j++;) putchar(j>n-1-abs(n-i)?42:32); } | Crocus |
반응형
'Applied > 알고리즘 문제풀이' 카테고리의 다른 글
특수 알고리즘 해결문서 (0) | 2015.12.06 |
---|---|
1~n까지의 합 (2) | 2015.12.01 |
더하기 사이클 (0) | 2015.12.01 |
발산하는 점의 개수 알고리즘 (0) | 2015.11.24 |
달팽이 수열 (0) | 2015.11.24 |