개발자/C or C++

백준 2446번 [C/C+]

Mosser 2021. 10. 5.
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

댓글