반응형
https://www.acmicpc.net/problem/1120
1. 문제
문자열 A, B가 주어진다. A는 B보다 같거나 짧다.
1. A의 앞에 아무 알파벳을 추가한다.
2. A의 뒤에 아무 알파벳을 추가한다.
이때, A와 B의 차이를 최소가 되도록 A를 바꿀 때 그 최소 차이값을 출력하라.
2. 접근
어차피 A의 앞과 뒤에는 B와 똑같은 알파벳을 추가하면되므로 고려하지않아도 된다. 그러면 A를 B에 맞춰서 위치를 조정하며 차이가 최소가 될 때를 구하면 된다.
3. 소스코드
a, b = input().split()
diff = len(b) + 1 # diff는 최소차이값. len(b) + 1로 초기화해주었다.
for dist in range(len(b)-len(a)+1): # A를 B에 맞춰 위치를 조정하며 차이가 최소가 될 때의 차이값을 구한다.
count = 0
for i in range(len(a)): # A와 B의 한글자씩 비교하며 다를 경우 차이값 + 1
if a[i] != b[i + dist]:
count += 1
diff = min(diff, count) # 최소차이값보다 더 작은 차이값을 찾을 경우 갱신
print(diff)
반응형
'컴퓨터공학 > 알고리즘' 카테고리의 다른 글
[백준] 1449. 수리공 항승 (0) | 2020.05.09 |
---|---|
[백준] 1049. 기타줄 (0) | 2020.05.09 |
[백준] 10610. 30 (0) | 2020.05.09 |
[백준] 2217. 로프 (0) | 2020.05.09 |
[백준] 11399. ATM (0) | 2020.05.09 |