ํ’€์ด


๋‘ ๋ฌธ์ž์—ด์˜ ์ฐจ์ด๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด์ž.

๋ฌธ์ž์—ด a : adaabc

๋ฌธ์ž์—ด b : aababbc

๋ฌธ์ž์—ด b ๋Š” ๋ฌธ์ž์—ด a ๋ณด๋‹ค ํ•ญ์ƒ ๊ธธ๊ฑฐ๋‚˜ ๊ฐ™๊ธฐ ๋•Œ๋ฌธ์— c ๋ผ๋Š” ๋ณ€์ˆ˜์— ๋‘ ๋ฌธ์ž์—ด ๊ธธ์ด์˜ ์ฐจ๋ฅผ ์ €์žฅํ•ด์ค€๋‹ค.

์œ„ ์˜ˆ์ œ์˜ ๊ฒฝ์šฐ c ๋Š” 1 ์ด๋‹ค.

๋‘ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด์„  ๋ฌธ์ž์—ด a ๊ฐ€ ๋ฌธ์ž์—ด b ์˜ ๊ธธ์ด์™€ ๊ฐ™์•„์ ธ์•ผํ•œ๋‹ค.

์ด๋•Œ ๋ฌธ์ž์—ด a ์˜ ์•ž์ด๋‚˜ ๋’ค์— ์•„๋ฌด ์•ŒํŒŒ๋ฒณ์„ ์ถ”๊ฐ€ํ•˜๊ฒŒ๋˜๋Š”๋ฐ ๋‘ ๋ฌธ์ž์—ด์˜ ์ฐจ์ด๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„  ๋ฌธ์ž์—ด a ์— ์ถ”๊ฐ€๋œ ์•ŒํŒŒ๋ฒณ์ด ๋ฌธ์ž์—ด b ์˜ ์•ŒํŒŒ๋ฒณ๋“ค๊ณผ ๊ฐ™์•„์•ผํ•œ๋‹ค.

์œ„ ์˜ˆ์ œ๋ฅผ ๋‹ค์‹œ ์‚ดํŽด๋ณด์ž.

๋ฌธ์ž์—ด a ๋Š”

  1. aadaabc

  2. adaabcc

๋‘˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋  ๊ฒƒ์ด๊ณ 

์ด ๋‘ ๋ฌธ์ž์—ด์„ ๋ฌธ์ž์—ด b ์™€ ๋น„๊ตํ•œ ๋’ค ๋‘˜ ์ค‘ ์ตœ์†Œํ•œ์˜ ์ฐจ์ด๋ฅผ ๊ตฌํ•ด์ฃผ๋ฉด๋œ๋‹ค.

๋ฌธ์ œํ’€์ด๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ๋“  ์ƒ๊ฐ์ด์ง€๋งŒ ์• ์ดˆ์— b[i:len(a)+i] ๋กœ ๋ฌธ์ž์—ด b ๋ฅผ ๋ฌธ์ž์—ด a ์— ๋งž์ถฐ ์Šฌ๋ผ์ด์‹ฑ ํ•˜๋ฉด์„œ ๋น„๊ตํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋” ๊น”๋”ํ–ˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

์†Œ์Šค์ฝ”๋“œ


import sys
 
input = sys.stdin.readline
 
a, b = input().split()
 
 
def compare(a, b):
    c = 0
    for i in range(len(b)):
        if a[i] != b[i]:
            c += 1
    return c
 
 
c = len(b) - len(a)
min_c = 51
 
for i in range(c + 1):
    d = b[:(c - i)] + a + b[-i:]
    min_c = min(min_c, compare(d, b))
 
print(min_c)

References