느슨한 비밀번호
면접 대비시간 제한1초메모리 제한512 MB
저장된 비밀번호 S와 입력한 비밀번호 P가 주어질 때, 두 문자열이 같거나, P에 숫자 하나를 앞뒤로 붙여 S가 되거나, P의 대소문자를 뒤집은 것이 S이면 허용한다.
문제
즐겨 쓰는 소셜 미디어 사이트가 로그인 비밀번호 검증 정책을 바꾼다. 이제 로그인할 때 조금 틀려도 괜찮다. 계정을 만들 때 정한 비밀번호를 S라고 하고, 로그인할 때 입력한 비밀번호를 P라고 하면, 다음 조건 중 하나라도 만족하면 P를 받아들인다.
- P와 S가 같다.
- S는 P 앞에 숫자 하나(0–9)를 붙여 만들 수 있다.
- S는 P 뒤에 숫자 하나를 붙여 만들 수 있다.
- S는 P의 모든 글자의 대소문자를 바꾼 문자열과 같다.
문자열의 대소문자를 바꾸려면 대문자는 같은 글자의 소문자로, 소문자는 같은 글자의 대문자로 바꾸고 나머지 문자는 그대로 둔다. 예를 들어 pa55WORD의 대소문자를 바꾼 문자열은 PA55word이다.
다른 비밀번호 P는 모두 거부된다. 예를 들어 S가 c0deninja5라면 c0deninja는 받아들이지만 C0deninja5나 c0deninja51은 받아들이지 않는다.
영숫자 문자열 S와 P가 주어질 때, P를 받아들여야 하는지 판단하는 프로그램을 작성하라.
입력
입력의 첫째 줄에는 저장된 비밀번호인 문자열 S가, 둘째 줄에는 사용자가 로그인을 시도하며 입력한 비밀번호 P가 주어진다. 각 문자열은 숫자 0–9, 소문자 a–z, 대문자 A–Z로만 이루어진다. 문자열에는 공백이나 다른 문자가 들어 있지 않으며, 길이는 각각 1 이상 101 이하이다.
출력
위 규칙에 따라 P를 받아들여야 하면 Yes를, 그렇지 않으면 No를 출력한다.