BOJ 28125 - 2023 아주머학교 프로그래딩 정시머힌
BOJ 28125 - 2023 아주머학교 프로그래딩 정시머힌
아주대학교 대회 문제들을 쭉 풀어보았다.
문자열의 뒤부터 검사하며 \\'
와 \'
는 \\'
를 먼저 검사할 수 있도록 해서 변환을 한다.
만약 변환된 정답이 알파벳으로만 이루어지지 않거나 정답 알파펫 개수의 절반보다 변환된 것이 같거나 많다면 정답은 불가능하다로 출력한다.
vector<vs> t{
{"@", "a"},
{"[", "c"},
{"!", "i"},
{";", "j"},
{"^", "n"},
{"0", "o"},
{"7", "t"},
{"\\\\'", "w"},
{"\\'", "v"},
};
void solve() {
string s;
cin >> s;
int cnt = 0;
string ans;
for (int i = sz(s) - 1; i >= 0;) {
int find = 0;
for (auto x: t) {
string s1 = x[0];
char c = x[1][0];
if (i >= sz(s1) - 1 && s.substr(i - sz(s1) + 1, sz(s1)) == s1) {
cnt++;
ans.pb(c);
find = 1;
i -= sz(s1);
break;
}
}
if (!find) {
ans.pb(s[i]);
i--;
}
}
reverse(all(ans));
for (char c: ans) {
if (c >= 'a' && c <= 'z') continue;
else {
cout << "I don't understand\n";
return;
}
}
debug(cnt, s);
if (cnt * 2 >= sz(ans)) cout << "I don't understand\n";
else cout << ans << endl;
debug(t);
}
Comments