게으른카르

백준 2446 별 찍기-9

C
2020. 3. 26. 08:08

백준 2446 별 찍기-9

내용 요약: 예제를 보고 규칙을 유추한 뒤에 별 찍기.
자세한 내용은 아래 백준 2446번 별 찍기 문제 링크 확인하세요.

2446번 문제에 주어지는 입력 및 예시

1<=N<=100사이의 입력이 주어짐.

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

예제>

입력: 5 --> 출력: 아래 참고.

*********

 *******

  *****

   ***

    *

   ***

  *****

 *******

*********

코드

2446번 문제의 코드는 다음과 같습니다.

#include<stdio.h>
int main(){
	int i,j,k;
	scanf("%d",&i);
	for(j=0;j<i;j++){
		for(k=0;k<2*i-1;k++){
			if(j>k)
				printf(" ");
			else if(k>=2*i-1-j)
				break;
			else
				printf("*");
		}
		printf("\n");
	}
	for(j=i-2;j>=0;j--){
		for(k=0;k<2*i-1;k++){
			if(j>k)
				printf(" ");
			else if(k>=2*i-1-j)
				break;
			else
				printf("*");
		}
		printf("\n");
	}
	return 0;
}

출력 형식이 잘못되었습니다.

더보기

이렇게 코드를 작성했는데 "출력 형식이 잘못되었습니다"라고 나왔습니다.

#include<stdio.h>
int main(){
	int i,j,k;
	scanf("%d",&i);
	for(j=0;j<i;j++){
		for(k=0;k<2*i-1;k++){
			if(j>k||k>=2*i-1-j)
				printf(" ");
			else
				printf("*");
		}
		printf("\n");
	}
	for(j=i-2;j>=0;j--){
		for(k=0;k<2*i-1;k++){
			if(j>k||k>=2*i-1-j)
				printf(" ");
			else
				printf("*");
		}
		printf("\n");
	}
	return 0;
}

이 코드를 실행하면 결과는 동일한 모습으로 보입니다.

그런데 이 코드가 출력 형식이 잘못되었다고 나와서 좀 더 생각해보았습니다.

이것이 문제더군요.

그냥 뒷부분의 공백은 안 찍어도 되는 것이었습니다.

실행

예제에 주어진 입력5를 입력하면 예제와 동일하게 실행이 됩니다.

반응형

'C' 카테고리의 다른 글

백준 10818 최소, 최대  (0) 2020.03.29
백준 10996 별 찍기 - 21  (0) 2020.03.27
백준 2523 별 찍기-13  (0) 2020.03.26
백준 5543 상근날드  (0) 2020.03.26
백준 10039 평균점수  (0) 2020.03.26

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band