minhui study
백준 1120번 문자열(python) 본문
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의 차이를 최소로 하는 프로그램을 작성하시오.
해설
문자열 B중에서 A와 가장 같은 부분이 많은 A길이의 연속된 구간을 찾은 후 나머지 부분의 원소들은 똑같이 A에 추가하면 되므로 B의 인덱스를 A와 B의 길이 차이 만큼 1씩 옮겨가면 각 경우에 두 문자열의 차이를 구하여 가장 작은 값을 출력한다.
PYTHON
A, B = input().split()
min=len(A)
for j in range(len(B)-len(A)+1):
count=0
for i in range(len(A)):
if A[i] != B[i+j]:
count+=1
if count < min:
min =count
print(min)
'백준 문제풀이 > 그리디 알고리즘' 카테고리의 다른 글
백준 2529번 부등호(Python, C++) (0) | 2020.08.18 |
---|---|
백준 1969번 DNA(Python, C++) (0) | 2020.08.18 |
백준 2875번 대회 or 인턴 (python) (0) | 2020.07.03 |
백준 1541번 잃어버린 괄호 (python) (0) | 2020.06.01 |
백준 10610번 30 (python, c++) (0) | 2020.06.01 |
Comments