[BOJ 9549] 암호화된 비밀번호
View as PDF
Submit solution
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text
Points:
2
Time limit:
2.0s
Memory limit:
128M
Problem types
Allowed languages
새로운 암호화 알고리즘이 개발되었다.
우선, 모든 비밀번호는 항상 알파벳 소문자로만 이루어진다고 가정하자.
암호화 알고리즘은 다음과 같이 진행된다.
- 비밀번호의 서로 다른 두 글자를 교환한다. 이 과정은 0번 또는 원하는 만큼 얼마든지 할 수 있다.
- 1번 과정의 결과물 앞부분에 0개 혹은 그 이상의 문자를 삽입한다.
- 2번 과정의 결과물 뒷부분에 0개 혹은 그 이상의 문자를 삽입한다.
3번 과정의 결과물이 암호화된 비밀번호이다.
청호는 사용하던 비밀번호들을 위 알고리즘대로 다 암호화했다.
하지만 수작업이었던 탓에 실수가 있을 지도 모르기 때문에 프로그램을 작성하여 제대로 암호화했는지 확인해보려 한다.
암호화된 비밀번호와 원래의 비밀번호가 주어지면, 암호화된 비밀번호가 원래의 비밀번호를 위의 알고리즘대로 암호화한 결과물일 수 있는지 혹은 없는지를 알아내 보자.
입력 형식
첫 줄에 테스트 케이스의 수 T가 주어진다. ( 1 ≤ T ≤ 100 )
각 테스트 케이스는 두 줄로 구성된다.
첫 줄엔 암호화된 결과물이 주어진다.
두 번째 줄엔 원래의 비밀번호가 주어진다.
암호화된 비밀번호와 원래의 비밀번호는 1개 이상 10만개 이하의 문자로 이루어져 있으며, 항상 알파벳 소문자만을 포함한다.
암호화된 비밀번호의 길이는 항상 원래 비밀번호의 길이보다 크거나 같다.
출력 형식
각 테스트 케이스마다, 원래의 비밀번호를 문제에서 설명한 알고리즘대로 암호화했을 때 주어진 결과물이 나올 수 있다면 YES를, 그렇지 않다면 NO를 출력한다.
예제 입력
3
abcdef
ecd
cde
ecd
abcdef
fcd
예제 출력
YES
YES
NO
Comments