https://www.acmicpc.net/problem/3054
"피터팬 프레임"은 '#'을 다이아몬드로, "웬디 프레임"은 '*"을 다이아몬드로 출력하는 모양이다.
두 모양 다 다이아몬드를 출력하는 형태이므로, 배열을 출력할 크기만큼 '.'로 초기화를 한 후에 순서대로 두 다이아몬드를 배열에 그리면 된다.
"웬디 프레임"이 "피터팬 프레임"보다 앞에 있으므로 "피터팬 프레임"을 그리고 "웬디 프레임"을 그린 다음에 출력하면 된다.
#include <stdio.h>
char S[16], R[5][62];
void Diamond(char c, int N)
{
int k = N * 4;
R[0][k + 2] = R[4][k + 2] = R[1][k + 1] = R[1][k + 3] = R[3][k + 1] = R[3][k + 3] = R[2][k] = R[2][k + 4] = c;
R[2][k + 2] = S[N];
}
int main()
{
int len =0;
scanf("%s", S);
while (S[len])len++;
for (int i = 0; i < 5; i++)
for (int j = 0; j < 4 * len + 1; j++)
R[i][j] = '.';
for (int i = 0; i < len ; i++)
Diamond('#', i);
for (int i = 2; i < len; i += 3)
Diamond('*', i);
for (int i = 0; i < 5; i++)
puts(R[i]);
}
'Problem Solving' 카테고리의 다른 글
[BOJ 1788] 피보나치 수의 확장 (0) | 2020.01.01 |
---|---|
[BOJ 2407] 조합 (0) | 2020.01.01 |
[BOJ 2960] 에라토스테네스의 체 (0) | 2019.12.30 |
[BOJ 1629] 곱셈 (0) | 2019.03.17 |
[BOJ 1964] 오각형, 오각형, 오각형… (0) | 2019.03.17 |