본문 바로가기

알고리즘/백준 (Pyhthon)

[알고리즘] 백준 1120 문자열 / python

https://www.acmicpc.net/problem/1120

 

1120번: 문자열

길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 길이는 B의 길이보다 작거나 같다. 이제 A의 길이가 B의 길이와 같아질 때 까지 다음과 같은 연산을 할 수 있다. A의 앞에 아무 알파벳이나 추가한다. A의 뒤에 아무 알파벳이나 추가한다. 이때, A와 B의 길이가 같으

www.acmicpc.net

 

입력이 adaabc aababbc 라면,

추가하는 아무 알파벳이 B와 같은거라고 가정하고

B의 인덱스를 옮겨가며 B의 길이 - A의 길이 만큼 비교한다

adaabc-aababb 비교(차이 3), adaabc-ababbc 비교(차이 2)

가장 작은 차이값을 출력한다

A, B = input().split()

_min = len(A)
for i in range(len(B)-len(A)+1):
    count = 0
    for j in range(len(A)):
        if A[j] != B[i+j]:
            count += 1
    if count < _min:
        _min = count

print(_min)