[백준 1120 ] 문자열 문제 풀이
두 개의 문자열이 주어질 때, 최대한 문자열을 겹치게 만드는 문제로, 최소한으로 덜 겹치는 수를 찾으면 됩니다.
# input
abd abcd
# output
1
$abcd$에서 겹치는 부분은 $abc$, $bcd$ 2가지가 가능하며, 이 중에서 $abc$가 $abd$ 와 차이가 1로 가장 작습니다.
따라서 $abdd$ 형태가 $abcd$와 차이가 1로 가장 작게 됩니다.
Key Point
a
의 길이는b
의 길이보다 짧다.a
의 좌우에 아무 알파벳이나 넣을 수 있는 것은b
에서 위치를 잡으면,a
의 위치를 제외한 나머지 부분은 알파벳이 동일하다고 여길 수 있습니다.
Solution
a, b = input().split()
count = len(b)
for i in range(len(b)-len(a)+1):
summ = sum([True for x,y in zip(a,b[i:len(a)+i]) if x!=y])
count = min(count, summ)
print(count)
'프로그래밍' 카테고리의 다른 글
Windows Powershell Anaconda (base) 추가하기 (0) | 2021.02.08 |
---|---|
[백준 1026 ] 보물 (0) | 2021.02.07 |
Python CuPy를 활용한 Matrix 연산 최적화 (0) | 2021.01.26 |
visual studio Code 색깔 바꾸기🦸♂️ (0) | 2021.01.01 |
env.yml [파이썬 환경 설정] (0) | 2020.12.16 |