- 각각의 경우에 대해서 나올 수 있는 결과들을 미리 적어서 확인한 후에 코드를 작성했다.
- 만약 문자열 A와 문자열 B가 일치하지 않는다면? → 어떤 변화를 주어도 해결할 수 없음(-1)
- 만약 문자열의 길이가 1 & 문자열 A와 문자열 B가 일치하면? → 0
- 만약 문자열의 길이가 1 & 문자열 A와 문자열 B가 일치하지 않는다면? → -1
- 만약 문자열의 길이가 1이 아닌 양수 값인 경우라면?
DCABA
DACBA
2
①. (A)DCA, (B)DAC 부분 문자열에서 (A)A를 맨 앞으로 가져온다.
(A)ADC, (B)DAC
②. (A)ADC, (B)DAC 부분 문자열에서 (A)D를 맨 앞으로 가져온다.
(A)DAC, (B)DAC
따라서 최솟값은 2가 된다.
import sys
input = sys.stdin.readline
A_String = list(input().strip())
B_String = list(input().strip())
A_sort = sorted(A_String)
B_sort = sorted(B_String)
if A_sort != B_sort:
print(-1)
sys.exit()
if len(A_String) == 1:
if str(''.join(map(str, A_sort))) == str(''.join(map(str, B_sort))):
print(0)
else:
print(-1)
else:
idx = len(A_String) - 1
cnt = 0
for i in range(len(A_String) - 1, -1, -1):
if A_String[i] != B_String[idx]:
cnt += 1
else:
idx -= 1
print(cnt)