본문 바로가기

PS

BOJ - 10992번 별 찍기 - 17

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;
}

 

이상.

'PS' 카테고리의 다른 글

[BOJ] 15665번 N과 M (11) 문제  (0) 2021.03.03
[BOJ] 2153번 소수 단어 문제  (0) 2021.01.19
BOJ - 2133번 타일 채우기  (0) 2020.09.08
BOJ - 1699번 제곱수의 합  (0) 2020.09.08
BOJ - 1463번 1로 만들기  (0) 2020.09.03