BOJ - 11328번_Strfry

두 개의 문자열에 대해, 2번째 문자열이 1번째 문자열에 strfry 함수(입력된 문자열을 무작위로 재배열하여 새로운 문자열을 만들어내는 함수)를 적용하여 얻어질 수 있는지 판단하는 프로그램 작성하기


풀이

각 문자열을 이루는 알파벳의 개수를 비교한다.


소스코드

#include <bits/stdc++.h>
using namespace std;

int str1[26];
int str2[26];
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	int n;
	string s1, s2;
	
	cin >> n;
	for(int i=0; i<n; i++) {
		cin >> s1 >> s2;
		for(int j=0; j<s1.length(); j++) {
			str1[s1[j]-'a']++;
			str2[s2[j]-'a']++;
		}
			
		bool check = true;
		for(int j=0; j<26; j++) {
			if(str1[j] != str2[j]) {
				check = false;
				break;
			}
		}
		
		for(int j=0; j<26; j++) {
			str1[j] = 0;
			str2[j] = 0;
		}
	
		if(check) {
			cout  << "Possible\n";
		}
		else {
			cout << "Impossible\n";	
		}
	}
}