개발 연습장/백준 문제풀이

[파이썬, Python] 백준 1120: 문자열

LooanCheong 2023. 6. 20. 11:38
반응형

문제

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의

www.acmicpc.net

코드

a, b = input().split()
ans = list()

for i in range(len(b) - len(a) + 1):
    cnt = 0
    for j in range(len(a)):
        if a[j] != b[i+j]:
            cnt += 1
    ans.append(cnt)

print(min(ans))

설명

우선 각 입력값을 받아준다.

b의 개수에서 a의 개수를 빼고 1을 더해준 만큼 반복문을 돌린다.
이는 b는 a보다 개수가 많거나 같다라고 했기 때문에 있는 조건이다.
b가 a와 같아도 1번은 비교를 해줘야 한다.

추가되는 문자열을 비교할 필요는 없다.
현재의 문자열에서 위치를 옮겨가며 비교하고
그 비교값의 최솟값을 출력하면 된다.

예제 3번의 경우,
XXXkoder를 topcoder와 비교하는 경우가 최소가 된다(X는 공백)
문자를 아무거나 넣을 수 있기 때문에 공백에는 같은 문자를 넣어준다고 가정하고 풀면 된다.

따라서 위치를 옮겨가며 값을 비교하고,
비교한 값의 최솟값을 출력한다.

반응형