728x90
별 찍기 시리즈 9번째.
별 찍기 시리즈에 꽂혀서 무난하게 풀어가던중 9번에서
또 한번 성장한 기분이 들어 글을 적는다.
문제
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
예제 입력 1
5
예제 출력 1
*********
*******
*****
***
*
***
*****
*******
*********
내가 이번 문제에서 성장한 포인트는 3가지 였다.
소스 코드 정리하기, 가독성 좋게 바꾸기,굳이 변수를 추가
안하고 문제 풀기.
[소스코드]- 정리하기전
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int e=1;
int t=2*n-1;
for(int i=n;i>0;i--){
for(int j=1;j<e;j++){
printf(" ");}
for(int k=t;k>0;k--){
printf("*");}
printf("\n");
e+=1;
t-=2;
}
int c=n-2;
int y=3;
for(int i=1;i<=n-1;i++){
for(int j=c;j>0;j--){
printf(" ");}
for(int k=0;k<y;k++){
printf("*");}
printf("\n");
c-=1;
y+=2;
}
return 0 ;
}
[소스코드]-정리후
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
for(int j=1;j<i+1;j++){
printf(" ");}
for(int k=2*(n-i)-1;k>0;k--){
printf("*");}
printf("\n"); }
for(int i=0;i<n-1;i++){
for(int j=(n-i)-2;j>0;j--){
printf(" ");}
for(int k=0;k<(i*2)+3;k++){
printf("*");}
printf("\n"); }
return 0 ;
}
후기
아무래도 군대에서 핸드폰 어플로 코딩을 하려다 보니
비쥬얼 스튜디오처럼 자동적으로 케어해주는 기능이 없다.
그래서 최대한 소스코드를 작성할때 깔끔하고 메모리도 줄이고 가독성 좋게 바꾸는 연습을 해보았다.
결과는 대만족! 훨씬 깔끔하다!
'백준 알고리즘' 카테고리의 다른 글
백준 온라인 1850번 최대공약수 C언어 (0) | 2022.12.18 |
---|---|
[백준알고리즘c언어 10992번 별찍기-17번] (1) | 2022.09.25 |
[백준 알고리즘 2443번 별찍기-6번] (0) | 2022.09.24 |
[백준 알고리즘 c언어 2442번 별찍기-5 초보버전] (0) | 2022.09.24 |
[백준 알고리즘 c언어 11721번] (2) | 2022.09.23 |