망나니 AWOS의 일상
article thumbnail

문제 풀이

문제 조건을 보면 A의 길이는 B의 길이보다 작다.

A와 B의 길이가 같을 경우 B의 문자열 중에 A의 문자열 중에 어느 문자가 다른지를 판별해주어 개수를 세주면된다.

아래의 그림을 보면 A에 hello, B에 xello가 들어왔을때 for문을 돌려 각각의 요소들이 같은지 다른지를 판별해 개수를 세서 리턴해주면 된다.

A와 B의 길이가 다를 경우 방법은 같은 경우의 방법과 유사하다.

아래의 그림을 보면 A에 abc, B에 topabcoder가 들어왔을때 해당 B의 문자열을 abc로 비교할 수 있는 횟수는 총 8번이다. B의 문자열들을 인덱스 값을 하나씩 증가시켜가며 대조하는 것으로 보면 된다.

총 8번을 비교하여 그 중 최소를 출력해주면 된다.

 

완성된 코드!!👍😊

def same_len(a, b):
    rs = 0
    for i in range(len(a)):
        if a[i] != b[i]:
            rs += 1
    return rs


def diff_len(a, b):
    c = len(b) - len(a) + 1
    rs = list()

    for i in range(c):
        tot = 0
        for j, val in enumerate(b[i:i+len(a)]):
            if val != a[j]:
                tot += 1
        rs.append(tot)
    return min(rs)


a, b = input().split()
if len(a) == len(b):
    print(same_len(a, b))
else:
    print(diff_len(a, b))

 

profile

망나니 AWOS의 일상

@AWOS

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!