안녕하세요. 오늘은 프레임을 만들 거예요.
https://www.acmicpc.net/problem/3054
중간 줄 빼고는 그냥 %를 잘 쓰면 됩니다.
중간 줄은 좀 어려운데 맨 첫 글자는 무조건 #이고 맨 마지막 글자도 무조건 #입니다. 하지만 len이 3의 배수라면, 즉 #으로 끝나지 않는다면 맨 마지막 글자만 *입니다.
이걸 잘 구현해주면 됩니다.
#include <iostream>
#include <string>
#define ll long long
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
ll len, i, j;
string s;
cin >> s; len = s.length();
for (i = 0; i < 5; i++)
{
for (j = 0; j < 4 * len + 1; j++)
{
if (i == 0 || i == 4)
{
if (j % 4 == 2)
{
if (((j - 2) / 4) % 3 == 2) cout << '*';
else cout << '#';
}
else cout << '.';
}
else if (i == 1 || i == 3)
{
if (j % 2 == 1)
{
if (j % 12 == 9 || j % 12 == 11) cout << '*';
else cout << '#';
}
else cout << '.';
}
else
{
if (j % 2 == 0)
{
if (j % 4 == 2) cout << s[j / 4];
else
{
if (j == 0 || (len % 3 != 0 && j == 4 * len)) cout << '#'; //맨 끝이면 #
else
{
if (j % 12 == 0 || j % 12 == 8) cout << '*';
else cout << '#';
}
}
}
else cout << '.';
}
}
cout << "\n";
}
}
감사합니다.