반응형

-풀이

a, b = input().split()
answer = []
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
  answer.append(count)
print(min(answer))

-풀이 설명

[40분 no sol] 1,2번 경우의 수를 생각해서, 1번만 사용하거나 2번만 사용할 때는 나타내었는데, 1,2번 번갈아가면서 사용할 때를 구분하질 못해서 헤메고 구글링을 하게 되었다.

해결법은 모든 경우의 수를 볼 수 있게 브루트포스 알고리즘을 사용하여 푸는 것 이었다.

1.b길이에서 a길이만큼 빼주고 길이가 같을 경우 반복문이 돌아가지 않는 것을 방지해 뒤에 +1을 해준다.

2.a가 b의 어디든 위치할 수 있는 경우를 다 고려하여 다를 경우 count를 세주어 answer 리스트에 담는다.

3.최솟값을 출력한다.

+ Recent posts