728x90
반응형
『목차』
0. 개요
1. 문제
2. 풀이
3. 코드
0. 개요
백준에는 별 찍기 문제가 정말 많다. 아직까지는 21번 문제가 별찍기의 마지막인 것 같다.
1. 문제
https://www.acmicpc.net/problem/10996
10996번: 별 찍기 - 21
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
www.acmicpc.net
[문제]
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
[입력]
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
[출력]
첫째 줄부터 차례대로 별을 출력한다.
[예제 입력 1]
1
[예제 출력 1]
*
[예제 입력 2]
2
[예제 출력 2]
*
*
*
*
[예제 입력 3]
3
[예제 출력 3]
* *
*
* *
*
* *
*
[예제 입력 4]
4
[예제 출력 4]
* *
* *
* *
* *
* *
* *
* *
* *
2. 풀이
' '(공백)과 '\n'(개행)이 각각의 행과 열의 출력에 반영되어도 정답으로 인정되어 쉽게 풀 수 있었던 문제이다.
행의 경우
*(별) -> ' '(공백) -> *(별) -> ' '(공백) -> ...
' '(공백) -> *(별) -> ' '(공백) -> *(별) -> ...
의 순서대로 (입력값)의 크기에 해당하는 개수만 표시되고,
열의 경우
(입력값) * 2 의 개수만큼 표시된다.
[짝수 세로 index, 짝수 가로 index] 와 [홀수 세로 index, 홀수 가로 index] 에는 *(별) 이 표시되고,
[홀수 세로 index, 짝수 가로 index] 와 [짝수 세로 index, 홀수 가로 index] 에는 ' '(공백) 이 표시된다는 점을 이용하였다.
3. 코드
#pragma warning(disable:4996)
#include <stdio.h>
int main(int argc, char* argv[]) {
int N; scanf("%d", &N);
for (int i = 0; i < N * 2; i++) {
for (int j = 0; j < N; j++) {
if ((i + j) % 2 == 0) //짝수 + 짝수 = 홀수 + 홀수 = 짝수
printf("*");
else if ((i + j) % 2 == 1) //홀수 + 짝수 = 홀수
printf(" ");
}
printf("\n");
}
return 0;
}
728x90
반응형
'⌨️CS-PS > 백준_수학&구현' 카테고리의 다른 글
[Baekjoon/백준][2869][C/C++] 달팽이는 올라가고 싶다 (0) | 2023.01.29 |
---|---|
[Baekjoon/백준][2475][C/C++] 검증수 (0) | 2023.01.27 |
[Baekjoon/백준][10951][C/C++] A+B - 4 (EOF) (0) | 2023.01.24 |
[Baekjoon/백준][5622][C/C++] 다이얼 (0) | 2023.01.23 |
[Baekjoon/백준][2920][C/C++] 음계 (0) | 2023.01.21 |