https://www.acmicpc.net/problem/1120
코드
import sys
input = sys.stdin.readline
a, b = input().split()
answer = 50
for i in range(len(b)-len(a)+1):
cnt = 0
for j in range(len(a)):
if a[j] != b[j+i]:
cnt += 1
answer = min(answer, cnt)
print(answer)
b에서 a와 가장 유사도가 높은 부분을 찾은 뒤에 나머지 남은 길이는 b와 같은 글자들로 채워넣으면 a와 b의 차이를 최소로 할 수 있다.
예를 들어, 문제의 예제 3인 `koder topcoder`를 예시로 보면
topcoder
koder
topcoder에서 coder 부분을 koder와 비교했을 때 가장 차이가 작은 것을 알 수 있다. 그렇다면 koder의 앞에 top을 추가하기만 하면 a와 b의 차이를 최소로 할 수 있는 것이다.
그러니까 여기서는 문자 추가하고 하는 건 별다른 제한이 없으니 이건 무조건 b랑 같게 추가한다고 하고, 처음에 주어진 a가 b와 가장 유사도가 높을 수 있는 부분을 찾으면 된다.
'문제풀이 > 완전탐색' 카테고리의 다른 글
[Python/파이썬] 백준 2659번 십자카드 문제 (0) | 2025.02.27 |
---|---|
[Javascript/자바스크립트] 백준 17968번 Fire on Field (0) | 2024.07.11 |
[Python/파이썬] SW Expert Academy 20731번 서로소 그리드 (1) | 2024.06.12 |
[Python/파이썬] 백준 21943번 연산 최대로 (0) | 2024.06.03 |
[Python/파이썬] 백준 1254번 팰린드롬 만들기 (0) | 2024.05.31 |
https://www.acmicpc.net/problem/1120
코드
import sys input = sys.stdin.readline a, b = input().split() answer = 50 for i in range(len(b)-len(a)+1): cnt = 0 for j in range(len(a)): if a[j] != b[j+i]: cnt += 1 answer = min(answer, cnt) print(answer)
b에서 a와 가장 유사도가 높은 부분을 찾은 뒤에 나머지 남은 길이는 b와 같은 글자들로 채워넣으면 a와 b의 차이를 최소로 할 수 있다.
예를 들어, 문제의 예제 3인 `koder topcoder`를 예시로 보면
topcoder
koder
topcoder에서 coder 부분을 koder와 비교했을 때 가장 차이가 작은 것을 알 수 있다. 그렇다면 koder의 앞에 top을 추가하기만 하면 a와 b의 차이를 최소로 할 수 있는 것이다.
그러니까 여기서는 문자 추가하고 하는 건 별다른 제한이 없으니 이건 무조건 b랑 같게 추가한다고 하고, 처음에 주어진 a가 b와 가장 유사도가 높을 수 있는 부분을 찾으면 된다.
'문제풀이 > 완전탐색' 카테고리의 다른 글
[Python/파이썬] 백준 2659번 십자카드 문제 (0) | 2025.02.27 |
---|---|
[Javascript/자바스크립트] 백준 17968번 Fire on Field (0) | 2024.07.11 |
[Python/파이썬] SW Expert Academy 20731번 서로소 그리드 (1) | 2024.06.12 |
[Python/파이썬] 백준 21943번 연산 최대로 (0) | 2024.06.03 |
[Python/파이썬] 백준 1254번 팰린드롬 만들기 (0) | 2024.05.31 |