반응형
-풀이
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.최솟값을 출력한다.
'알고리즘' 카테고리의 다른 글
[DP] 백준 1309 파이썬 (동물원) 실버1 (0) | 2021.12.29 |
---|---|
[브루트포스] 백준 1120 파이썬 (부분수열의 합) 실버2 (0) | 2021.12.28 |
[그래프 탐색] 백준 1012 파이썬 (유기농배추) 실버2 (0) | 2021.12.27 |
[분할정복] 백준 2630파이썬 (색종이 만들기) 실버3 (0) | 2021.12.25 |
[수학] 백준 1057 파이썬 (토너먼트) 실버3 (0) | 2021.12.24 |