#include <bits/stdc++.h>
using namespace std;
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
int testCase;
string te1, te2;
cin >> testCase;
int arr[26] = { 0, };
int arr2[26] = { 0, };
int count = 0;
for (int i = 0; i < testCase; i++) {
cin >> te1;
cin>> te2;
for (int i = 0; i < te1.size(); i++) {
arr[te1[i] - 'a']++;
}
for (int i = 0; i < te2.size(); i++) {
arr2[te2[i] - 'a']++;
}
for (int i = 0; i < 26; i++) {
if (arr[i] > 0 && arr2[i] > 0) {
if (arr[i] == arr2[i]) {
count += arr[i];
}
}
}
if (count == te1.size()) {
cout << "Possible" << "\n";
}
else {
cout << "Impossible" << "\n";
}
for (int i = 0; i < 26; i++) {
arr[i] = 0;
arr2[i] = 0;
}
count = 0;
}
}
문자를 입력하면
각각의 문자마다 배열에다가 a~z까지 맞는 게 있으면 한 개씩 추가해주는 형식으로 함
그다음 두 문자의 배열을 돌아보면서 같은 위치에 0이 아닌 숫자가 있으면 count에 그 인덱스에 있는 배열 값을 더해주는 형식으로 함
그 다음 count가 문자의 사이즈랑 똑같으면 가능 안 똑같으면 불가능으로 출력
ex) abcd bcda로 하면 count가 4가 나오고 count랑 글자의 사이즈랑 같음
ex) abcd bcdf count가 b c d 3개만 같으므로 count가 3이나 오고 글자의 사이즈는 4가 나와서 틀림
잘 놓칠 수 있는 거
ex) aa 같은 거 aa를 입력하면 arr [0] = 2인데 그냥 둘이 같으면 1을 더해주게 되면 무조건 size랑 같을 수가 없게 됨
'BOJ' 카테고리의 다른 글
[백준] 1406번 에디터 C++ (0) | 2020.04.22 |
---|---|
[백준] 1919번 애너그램 만들기 c++ (0) | 2020.04.21 |
[백준] 1475번 방 번호 c++ (0) | 2020.04.21 |
[백준] 13300 방 배정 c++ (0) | 2020.04.20 |
[백준] 10807번 개수 세기 c++ (0) | 2020.04.20 |