반응형
문제
https://www.acmicpc.net/problem/1120
코드
a, b = input().split()
ans = list()
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
ans.append(cnt)
print(min(ans))
설명
우선 각 입력값을 받아준다.
b의 개수에서 a의 개수를 빼고 1을 더해준 만큼 반복문을 돌린다.
이는 b는 a보다 개수가 많거나 같다라고 했기 때문에 있는 조건이다.
b가 a와 같아도 1번은 비교를 해줘야 한다.
추가되는 문자열을 비교할 필요는 없다.
현재의 문자열에서 위치를 옮겨가며 비교하고
그 비교값의 최솟값을 출력하면 된다.
예제 3번의 경우,
XXXkoder를 topcoder와 비교하는 경우가 최소가 된다(X는 공백)
문자를 아무거나 넣을 수 있기 때문에 공백에는 같은 문자를 넣어준다고 가정하고 풀면 된다.
따라서 위치를 옮겨가며 값을 비교하고,
비교한 값의 최솟값을 출력한다.
반응형
'개발 연습장 > 백준 문제풀이' 카테고리의 다른 글
[파이썬, Python] 백준 11053: 가장 긴 증가하는 부분 수열 (0) | 2023.06.22 |
---|---|
[파이썬, Python] 백준 9656: 돌 게임 2 (0) | 2023.06.21 |
[파이썬, Python] 백준 9375: 패션왕 신해빈 (2) | 2023.06.19 |
[파이썬, Python] 백준 2193: 이친수 (0) | 2023.06.14 |
[파이썬, Python] 백준 1735: 분수 합 (0) | 2023.06.13 |