반응형

첫째줄 부터 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