๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Algorithm/BOJ

[BOJ] ๋ฌธ์ž์—ด (#1120)

 

 

๋ฌธ์ œ 

 

๊ธธ์ด๊ฐ€ N์œผ๋กœ ๊ฐ™์€ ๋ฌธ์ž์—ด X์™€ Y๊ฐ€ ์žˆ์„ ๋•Œ, ๋‘ ๋ฌธ์ž์—ด X์™€ Y์˜ ์ฐจ์ด๋Š” X[i] ≠ Y[i]์ธ i์˜ ๊ฐœ์ˆ˜์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, X=”jimin”, Y=”minji”์ด๋ฉด, ๋‘˜์˜ ์ฐจ์ด๋Š” 4์ด๋‹ค.

๋‘ ๋ฌธ์ž์—ด A์™€ B๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด๋•Œ, A์˜ ๊ธธ์ด๋Š” B์˜ ๊ธธ์ด๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค. ์ด์ œ A์˜ ๊ธธ์ด๊ฐ€ B์˜ ๊ธธ์ด์™€ ๊ฐ™์•„์งˆ ๋•Œ ๊นŒ์ง€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

  1. A์˜ ์•ž์— ์•„๋ฌด ์•ŒํŒŒ๋ฒณ์ด๋‚˜ ์ถ”๊ฐ€ํ•œ๋‹ค.
  2. A์˜ ๋’ค์— ์•„๋ฌด ์•ŒํŒŒ๋ฒณ์ด๋‚˜ ์ถ”๊ฐ€ํ•œ๋‹ค.

์ด๋•Œ, A์™€ B์˜ ๊ธธ์ด๊ฐ€ ๊ฐ™์œผ๋ฉด์„œ, A์™€ B์˜ ์ฐจ์ด๋ฅผ ์ตœ์†Œ๋กœ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

 

์ž…๋ ฅ 

 

์ฒซ์งธ ์ค„์— A์™€ B๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. A์™€ B์˜ ๊ธธ์ด๋Š” ์ตœ๋Œ€ 50์ด๊ณ , A์˜ ๊ธธ์ด๋Š” B์˜ ๊ธธ์ด๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๊ณ , ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

 

 

์ถœ๋ ฅ 

 

์ฒซ์งธ ์ค„์— A์™€ B๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. A์™€ B์˜ ๊ธธ์ด๋Š” ์ตœ๋Œ€ 50์ด๊ณ , A์˜ ๊ธธ์ด๋Š” B์˜ ๊ธธ์ด๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๊ณ , ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

 

 

ํ•ด์„ค ์ฝ”๋“œ 
a, b = input().split()

answer = []
for i in range(len(b) - len(a) + 1):
    count = 0
    for j in range(len(a)):
        if a[j] != b[i + j]:
            count += 1
    answer.append(count)

print(min(answer))
๋ถ„์„ > ์œ„ ๋ฌธ์ œ๋Š” a์˜ ๋ฌธ์ž๋ฅผ ๋’ค๋กœ ํ•˜๋‚˜์”ฉ ๋ฐ€์–ด๊ฐ€๋ฉด์„œ b์™€์˜ ์˜ค์ฐจ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ๋’ค๋กœ ํ•˜๋‚˜์”ฉ ๋ฌธ์ž๋ฅผ ๋ฏธ๋Š” ๊ฒƒ์€ b์˜ ๊ธธ์ด์—์„œ a์˜ ๊ธธ์ด๋ฅผ ๋นผ๊ณ  1์„ ๋”ํ•œ ๋งŒํผ ๋ฐ˜๋ณตํ•˜๋Š”๋ฐ, 1์„ ๋”ํ•˜๋Š” ์ด์œ ๋Š” a ์™€ b์˜ ๊ธธ์ด๊ฐ€ ๊ฐ™์„ ๊ฒฝ์šฐ 1์„ ๋”ํ•˜์ง€ ์•Š์œผ๋ฉด 0 ์ด ๋˜์–ด ๋ฐ˜๋ณต์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  a์™€ b์˜ ๋ฌธ์ž๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์€ a์˜ ๊ธธ์ด๋งŒํผ๋งŒ ๋ฐ˜๋ณตํ•˜๋ฉด ๋˜๋Š”๋ฐ, ์ด๋Š” a๋Š” ์–ธ์ œ๋‚˜ b๋ณด๋‹ค ๊ธธ์ด๊ฐ€ ๊ฐ™๊ฑฐ๋‚˜ ์งง๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

 

์˜ˆ์‹œ 

 

์ฒ˜์Œ ํ•ด์„ค ์ฝ”๋“œ๋ฅผ ๋ณด์•˜์„ ๋•Œ, ์ดํ•ด๊ฐ€ ์ž˜ ๊ฐ€์ง€ ์•Š์•„์„œ ์ง์ ‘ ์˜ˆ์‹œ๋ฅผ ๋งŒ๋“ค์–ด ์–ด๋–ค์‹์œผ๋กœ ์ฝ”๋“œ๊ฐ€ ์ง„ํ–‰๋˜๋Š” ์ง€ ํŒŒ์•…ํ•ด ๋ณด์•˜๋‹ค. ์ด๋ ‡๊ฒŒ i์™€ j์˜ ๊ฐ’์ด ๋ณ€ํ•˜๋ฉด์„œ ์–ด๋–ป๊ฒŒ ๋ฐ˜๋ณต๋ฌธ์ด ์ง„ํ–‰๋˜๋Š”์ง€ ํŒŒ์•…ํ•ด๋ณด๋‹ˆ, ํ•œ ๋ˆˆ์— ๋ณด๋‹ˆ ์ฝ”๋“œ๊ฐ€ ์ดํ•ด๊ฐ€ ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. 

 

a = abc

b = abcdef

 

a[0] = b[0] i = 0, j = 0 
a[1] = b[1] i = 0, j = 1
a[2] = b[2] i =0, j = 2
a[3] = b [3] i = 0, j = 3
array = [0]
a[0] != b[1] i = 1, j=0
a[1] != b[2] i = 1, j = 1
a[2] != b[3] i = 1, j = 2
a[3] != b[4] i = 1, j = 3
array = [0,4]
a[0] != b[2] i = 2, j = 0
a[0] != b[3] i = 2, j = 1
a[0] != b[4] i = 2, j = 2
a[0] != b[5] i = 3, j = 3
array = [0,4,4]