1411 : 비슷한 단어

풀이

뭔가 번역이 좀 애매한 것 같은데

a->b면 b->a도 당연히 성립할 줄 알았더니

a->b만 성립하면 되는 문제였다 (…)

단순 구현 문제이다.

코드

#include <iostream>
#include <string>
using namespace std;

int n, i, j, k, ans;
string str[101];

int main() {
	scanf("%d", &n);
	for (i = 0; i < n; i++) cin >> str[i];
	for (i = 0; i < n - 1; i++) for (j = i + 1; j < n; j++) {
		int chk1[27] = { 0 }, chk2[27] = { 0 };
		for (k = 0; k < str[i].length(); k++) {
			int a = str[i][k] - 'a' + 1, b = str[j][k] - 'a' + 1;
			if (!chk1[a] && !chk2[b]) chk1[a] = b, chk2[b] = a;
			else if (chk1[a] != b) break;
		}
		if (k >= str[i].length()) ans++;
	}
	cout << ans;
	return 0;
}


아무말

백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge

wookje.kwon's profile image

wookje.kwon

2017-04-20 19:26

Read more posts by this author