https://www.acmicpc.net/problem/10992
별 찍기 문제이다.
예시는 다음과 같다.
입력
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에서 찍힐 것이다.
그래서 다음과 같은 조건을 건다.
- 마지막 줄이면 다 찍는다.
- 마지막 줄이 아니면 j가 N-i, N+i면 찍는다.
- 나머지는 다 공백이다.
/* 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 |