개발자/C or C++
백준 2446번 [C/C+]
728x90
반응형
문제
해결 방법
이 문제는 반복문을 이용하여 푸는 문제인데요. 제가 푼 방식은 우선 첫번째 줄부터 절반까지 그리고, 그 후, 나머지를 그리는 방식으로 문제를 풀었습니다.
우선 위의 절반을 그릴 때는 (N)*(2*N-1)의 사각형 안에 그림을 그린다고 생각하시고, 한줄씩 넘어갈 때마다 현재 라인개의 공백을 그리고 나머지는 별표를 그리는 식으로 진행하면 됩니다.
아래의 절반을 그릴 때는 (N-1)*(2*N-1)의 사각형 안에 그림을 그린다고 생각하시고, 위의 절반을 그리는것을 반대로 생각하시고 그리시면 됩니다.
문제를 풀때는 막상어렵지만, 막상 해보면 생각보다 어렵지 않다고 생각하실겁니다. 정 어려우시다면
직접 손으로 각 변수의 경우의 수마다 그려보시는것도 좋으실 것 같습니다.
소스코드
#include <stdio.h>
int main(){
int N;
scanf("%d",&N);
int i,j,k;
for(i=0;i<N;i++){
for(k=0;k<i;k++){
printf(" ");
}
for(j=0;j<(2*N-1)-(2*k);j++){
printf("*");
}
printf("\n");
}
// 절반
for(i=N-1;i>0;i--){
for(k=0;k<i-1;k++){
printf(" ");
}
for(j=0;j<(2*N-1)-(2*k);j++){
printf("*");
}
if(i==1)
continue;
printf("\n");
}
return 0;
}
실행결과
반응형
'개발자 > C or C++' 카테고리의 다른 글
백준 15596번 [C/C+] (0) | 2021.10.05 |
---|---|
백준 10996번 [C/C+] (0) | 2021.10.05 |
백준 2523번 [C/C+] (0) | 2021.10.05 |
백준 5543번 [C/C+] (0) | 2021.10.05 |
백준 10039번 [C/C+] (0) | 2021.10.05 |
댓글