본문 바로가기
코딩/백준

[C언어] 백준 BOJ 2444 별 찍기 7

by 김두루미 2022. 7. 25.
반응형

https://www.acmicpc.net/problem/2444

 

2444번: 별 찍기 - 7

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net

문제 설명

이번 별 찍기는 별 찍기 5번과 별 찍기 6번을 합친듯한 모습을 보여주었습니다. 위의 2문제의 별을 출력하는 부분을 합쳐서 해결을 하였습니다.

가장 많이 나오는 부분이 중복되는 문제

코드를 그대로 붙이니, 가운데 부분에서 중복되는 모습을 보여주고 있습니다. 해결 방법으로는 가운데 겹치는 부분을 한 번만 출력이 되도록 반복 횟수를 조절하면 됩니다.

 

위의 정 삼각형을 그리는 반복문 i가 N-1 일때 반복을 하지 않게 조절하거나, 밑의 역 삼각형을 그리는 반복문의 i가 0이 아닌 1부터 시작을 하는 방법이 있습니다. 저는 후자를 택하여 문제를 해결하였습니다.

 

5를 입력하였을 때 출력 화면

 

코드 (C언어)
#include <stdio.h>

int main(void)
{
	int i, j, n;
	
	scanf("%d", &n);
	
	//별 찍기 5 번  
	for(i = 0; i < n; i++)
	{
		for(j = 0; j < n-1-i; j++)
		{
			printf(" ");	
		} 
		
		for(j = 0; j < (i * 2) + 1; j++)
		{
			printf("*");
		}
		printf("\n");
	}
	// 별 찍기 6 번 : i를 0이 아닌 1부터 시작하여 중복 부분이 나오지 않게 조치 
	for(i = 1; i < n; i++)
	{
		for(j = 0; j < i; j++)
		{
			printf(" ");	
		} 
		
		for(j = 0; j < (n * 2) - (i * 2 + 1); j++)
		{
			printf("*");
		}
		printf("\n");
	}
	
	return 0;
}
반응형