PS

BOJ - 10992번 별 찍기 - 17

식용감자 2020. 9. 3. 00:37

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

 

10992번: 별 찍기 - 17

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

www.acmicpc.net

 

별 찍기 문제이다.

 

예시는 다음과 같다.

 

입력

1


출력

*
입력

2


출력

 *
***
입력

3


출력

  *
 * *
*****
입력

4


출력

   *
  * *
 *   *
*******

 

내가 푼 방법은 단순하다.

 

이중 for문을 i, j로 건다.

 

i는 0부터 N-1까지로 하고, j는 1부터 N+i까지로 한다.

 

N이 4일 때 보면 첫줄은 4번째에, 둘째줄은 5번째에, 셋째줄은 6번째에서 끝나니까 이렇게 걸었다.

 

마지막줄을 빼고는 첫번째 별에서 좌우로 한칸씩 멀어지는 구조다.

 

첫번째 별은 N에서 찍혔다. 그럼 그 다음은 N-1, N+1에서 찍히고 다음은 N-2, N+2에서 찍힐 것이다.

 

그래서 다음과 같은 조건을 건다.

 

  1. 마지막 줄이면 다 찍는다.
  2. 마지막 줄이 아니면 j가 N-i, N+i면 찍는다.
  3. 나머지는 다 공백이다.

 

/* BOJ - 10992번 별 찍기 - 14 문제 */

#include <stdio.h>

int N;

int main() {
    scanf("%d", &N);

    for (int i = 0; i < N; i++) {
        for (int j = 1; j <= N + i; j++) {
            if (i == N - 1) printf("*");
            else if (j == N - i || j == N + i) printf("*");
            else printf(" ");
        }
        printf("\n");
    }
    return 0;
}

 

이상.