백준
백준 소스코드 [C++] 1343 폴리오미노
Hani_Levenshtein
2020. 8. 21. 00:42
https://www.acmicpc.net/problem/1343
1343번: 폴리오미노
첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다.
www.acmicpc.net
백준 소스코드 [C++] 1343 폴리오미노
#include <iostream>
#include <utility>
#include <vector>
#include <algorithm>
#include <deque>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
string s;
vector <char> print;
cin >> s;
bool ox=false;
for (int i = 0;i < (int)s.size();i++) {
if (s[i] == '.') print.push_back('.');
else {
if (i + 1 == (int)s.size() || s[i + 1] == '.') {
ox = true;
break;
}
else if (i + 4 <= (int)s.size() && s[i + 2] == 'X' && s[i + 3] == 'X' && s[i] == 'X') {
print.push_back('A');
print.push_back('A');
print.push_back('A');
print.push_back('A');
i = i + 3;
}
else if (s[i + 1] == 'X')
{
print.push_back('B');
print.push_back('B');
i = i + 1;
}
}
}
if (ox == true) cout << "-1";
else for (int i = 0;i < (int)print.size();i++) cout << print[i];
return 0;
}