Notice
Recent Posts
Recent Comments
Link
궤도
[EPPER] 11회 2번 본문
문제
풀이
난 별찍는 문제가 싫다. 별별 기상천외한 방법으로 별을 찍고, 대부분 노가다성이 짙은 문제라 풀고나서의 성취감도 그닥없다. 그래도 이걸 풀어야 졸업을 시켜줄테니 풀어야 한다.
다이아몬드 모양에 집중하지 말고 마지막 별까지의 공간(?)을 세보자 위 예시에선 3-4-5-4-3이다 공백은 2-1-0-1-2 이다. 가운데를 기준으로 잘라서 출력해야할 것 같다는 기분이 들 것이다. 가장 윗줄의 공백 갯수는 n/2개 이다. 여기부터 한 개씩 줄어들 것이고 별은 1부터 시작해서 두 개씩 늘어날 것이다. 이를 고려해서 윗 부분을 출력했다면 이제 반대로 공백을 한 개씩 늘리고, 별은 두 개씩 늘리며 아랫 부분을 출력한다. 별찍기는 재미 없어서 풀이도 대충 쓰게 된다.
소스코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int empty = n / 2;
int star = 1;
for (int i = 0; i <= (n / 2); i++) { //위의 절반 + 가운데
for (int j = 0; j < empty; j++)
printf(" ");
for (int j = 0; j < star; j++)
printf("*");
printf("\n");
empty -= 1;
star += 2;
}
empty += 2;
star -= 4;
for (int i = 0; i < (n / 2); i++) { //아래 절반
for (int j = 0; j < empty; j++)
printf(" ");
for (int j = 0; j < star; j++)
printf("*");
printf("\n");
empty += 1;
star -= 2;
}
}
Comments