1 분 소요

1. 문제

https://www.acmicpc.net/problem/1120

  • 문자열 문제
// 문제
길이가 N으로 같은 문자열 X와 Y가 있을 때, 
두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 
예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다.

두 문자열 A와 B가 주어진다. 
이때, A의 길이는 B의 길이보다 작거나 같다. 
이제 A의 길이가 B의 길이와 같아질 때 까지 다음과 같은 연산을 할 수 있다.

A의 앞에 아무 알파벳이나 추가한다.
A의 뒤에 아무 알파벳이나 추가한다.
이때, A와 B의 길이가 같으면서, 
A와 B의 차이를 최소로 하는 프로그램을 작성하시오.

// 입력
첫째 줄에 A와 B가 주어진다. 
A와 B의 길이는 최대 50이고, 
A의 길이는 B의 길이보다 작거나 같고, 
알파벳 소문자로만 이루어져 있다.

// 출력
A와 B의 길이가 같으면서, 
A와 B의 차이를 최소가 되도록 했을 때, 
그 차이를 출력하시오.

// 예제 입력 1 
adaabc aababbc

// 예제 출력 1 
2

// 예제 입력 2 
hello xello

// 예제 출력 2 
1

// 예제 입력 3 
koder topcoder

// 예제 출력 3 
1

// 예제 입력 4 
abc topabcoder

// 예제 출력 4 
0

// 예제 입력 5 
giorgi igroig

// 예제 출력 5 
6


2. 핵심 아이디어


3. Python 문제풀이

import sys
input = sys.stdin.readline

a, b = input().rstrip().split()

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

print(min(result))


4. Java 문제풀이


댓글남기기