문제 링크
https://www.acmicpc.net/problem/1411
아이디어
- 문자열
- 단순 구현
1. 같은 문자가 다른 문자로 바뀌는 경우 (aa -> bc)
2. 다른 문자가 같은 문자로 바뀌는 경우 (bc -> aa)
위의 두 가지 경우를 제외하고는 모두 바꿀 수 있다.
소스코드
#include <iostream> #include <cstring> #include <string> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(); bool f = 0; int t, visit1[26], visit2[26], ans = 0; string str[101]; cin >> t; for (int i = 0; i < t; ++i) { cin >> str[i]; } for (int i = 0; i < t-1; ++i) { for (int j = i + 1; j < t; ++j) { if (str[i].length() != str[j].length()) continue; f = 0; memset(visit1, -1, sizeof(visit1)); memset(visit2, -1, sizeof(visit2)); for (int k = 0, len = str[i].length(); k < len; ++k) { if (visit1[str[i][k] - 'a'] != -1 && visit1[str[i][k] - 'a'] != str[j][k] - 'a') { f = 1; break; } if (visit2[str[j][k] - 'a'] != -1 && visit2[str[j][k] - 'a'] != str[i][k] - 'a') { f = 1; break; } visit1[str[i][k] - 'a'] = str[j][k] - 'a'; visit2[str[j][k] - 'a'] = str[i][k] - 'a'; } if (f) continue; ans++; } } cout << ans; return 0; }
공부한 것을 정리하기 위한 기록입니다.
틀린 부분이 있다면 언제나 부드럽게 알려주세요.
'PS > BOJ' 카테고리의 다른 글
[BOJ 14503] 로봇청소기 (0) | 2020.05.15 |
---|---|
[BOJ 14499] 주사위 굴리기 (0) | 2020.05.14 |
[BOJ 1421] 나무꾼 이다솜 (0) | 2020.05.08 |
[BOJ 1564] 팩토리얼5 (0) | 2020.05.04 |
[BOJ 1166] 선물 (0) | 2020.04.30 |
댓글