문제
https://www.acmicpc.net/problem/1120
풀이
# 백준 / 실버4 / 문자열
import sys
X,Y = map(str, sys.stdin.readline().split())
def diff(x,y):
cnt = 0
min_val = 100000
if len(X) == len(Y):
for i in range(len(x)):
if x[i] != y[i]:
cnt += 1
if cnt < min_val:
min_val = cnt
else:
for i in range(len(y)):
cnt = 0
if (i+len(x)) > len(y):
break
for j in range(len(x)):
z = y[i:i+len(x)]
if x[j] != z[j]:
cnt += 1
if cnt < min_val:
min_val = cnt
return min_val
print(diff(X,Y))
- 길이가 같을 때 = 다른 부분만 출력해준다
- 길이가 다를 때
1. 같은 부분이 존재 == 앞,뒤로 추가해주면 되니까 완전히 같은 문자열을 만들 수 있다.
2. 같은 부분이 존재 x == 슬라이싱하면서 다른 부분 중 최소값이 답이 된다.
'알고리즘 > 백준' 카테고리의 다른 글
백준 1003 - 피보나치 함수 (0) | 2024.06.05 |
---|---|
백준 2579 - 계단 오르기 (0) | 2024.06.04 |
백준 28278 - 스택 2 (0) | 2024.06.03 |
백준 1920 - 수 찾기 (0) | 2024.05.28 |
백준 11651 - 좌표 정렬하기 2 (0) | 2024.05.27 |