백준 알고리즘
[백준 알고리즘 c언어 2446 별 찍기9번]
이상한 코딩
2022. 9. 25. 13:24
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 ;
}
후기
아무래도 군대에서 핸드폰 어플로 코딩을 하려다 보니
비쥬얼 스튜디오처럼 자동적으로 케어해주는 기능이 없다.
그래서 최대한 소스코드를 작성할때 깔끔하고 메모리도 줄이고 가독성 좋게 바꾸는 연습을 해보았다.
결과는 대만족! 훨씬 깔끔하다!