본문 바로가기

알고리즘/백준

백준 1120 - 문자

 

 

문제

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 == 슬라이싱하면서 다른 부분 중 최소값이 답이 된다.

 

 

'알고리즘 > 백준' 카테고리의 다른 글