본문 바로가기

알고리즘

C언어 - 백준 10996 별 찍기 - 21

728x90

문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력

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

https://www.acmicpc.net/problem/10996 -> 여기서 예제를 확인하세요.

★소스코드

#include  <stdio.h>

int main() {
int N;
scanf("%d", &N);
for (int i = 0; i < N * 2; i++) {
if (i % 2 == 0) {
for (int j = 0; j < N; j++) {
if (j % 2 == 0)
printf("*");
if (j % 2 == 1 && j != N - 1)
printf(" ");
}
printf("\n");
}
else {
for (int j = 0; j < N; j++) {
if (j % 2 == 0 && j != N - 1)
printf(" ");
if (j % 2 == 1)
printf("*");
}
printf("\n");
}
}
}

★정리

이 문제는 별과 공백이 한 번씩 번갈아 가면서 나온다. 줄은 N 만큼 반복하고 바뀐다. 전체의 줄의 개수는

N*2개이므로 반복문을 사용해 주고 그 안에 두 개의 반복문을 사용하였다. 첫 번째는 줄의 첫 번째가

별인 경우이고 두 번째는 공백인 경우이다. 또 이 문제에서는 뒷부분의 공백은 출력을 하지 않기 때문에

마지막 인덱스가 공백을 출력할 차례라면 출력하지 않도록 조건문을 사용하였다.

728x90

'알고리즘' 카테고리의 다른 글

C언어 - 백준 1193 분수찾기  (0) 2020.09.23
C언어 - 백준 2292 벌집  (0) 2020.03.25
C언어 - 백준 2446 별 찍기 - 9  (0) 2020.03.21
C언어 - 백준 2523 별 찍기 - 13  (0) 2020.03.20
C언어 - 백준 10039 평균 점수  (0) 2020.03.20