안녕하세요. 오늘은 단어 사다리를 만들 거예요.
https://www.acmicpc.net/problem/9229
두 문자열이 문제의 조건을 만족하는지 판별하는 함수를 able(s,s2)라고 합시다.
그러면 문자열을 순서대로 받아서 #이 나오면 break하고 하니면 able을 검사하면서 그 세트가 가능한지 아닌지를 판별해주면 됩니다.
#include <iostream>
#include <string>
#define ll long long
using namespace std;
bool able(string s, string s2)
{
if (s.length() != s2.length()) return false;
ll cnt = 0;
for (ll i = 0; i < s.length(); i++)
if (s[i] != s2[i])
cnt++;
return cnt == 1;
}
int main()
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
string before, now;
while (true)
{
cin >> before;
if (before == "#") break;
bool flag = true;
while (true)
{
cin >> now;
if (now == "#") break;
if (able(before, now) == false) flag = false;
before = now;
}
if (flag) cout << "Correct\n";
else cout << "Incorrect\n";
}
}
감사합니다.