문제
길이가 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
[문제 풀이]
사실 이 문제는 Greedy 방법보다 브루트 포스 문제로 풀면 쉬운 문제다.
하나 하나추가해 가면서 같은 count를 비교해 가면서 count를 list에 저장하고 그 중에서 최소값을 찾으면 되는 문제이다.
ex) adaabc aababbc
0=> 3번
1=> 2번
[3,2] 중 최소값 2 출력
#1120.py
A, B=input().split()
N=len(B)-len(A)
cnt_list=[]
for i in range(N+1):
cnt=0
for j in range(len(A)):
if(A[j] !=B[i+j]):
cnt +=1
cnt_list.append(cnt)
print(min(cnt_list))
'Algorithm(알고리즘) > BOJ(백준) 문제풀이' 카테고리의 다른 글
백준 1946번 파이썬 | 신입 사원 | Greedy (0) | 2020.09.14 |
---|---|
백준 11497번 파이썬 | 통나무 건너뛰기 | Greedy (0) | 2020.09.13 |
백준 10610번 파이썬 풀이 | 30 | 그리디(Greedy) 알고리즘 (1) | 2020.07.07 |
백준 2875번 파이썬 풀이 | 대회 or 인턴 | 그리디(Greedy) 알고리즘 (0) | 2020.07.04 |
백준 2217번 파이썬 풀이 | 로프 | 그리디(Greedy) 알고리즘 (0) | 2020.07.04 |