문제
1120번: 문자열
길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의
www.acmicpc.net
알고리즘
- 두 문자열 길이의 차이만큼 반복하여 a의 문자열과 b의 문자열을 비교한다.
- 비교하는 과정으로는 b의 인덱스를 +1 해주면서 a의 문자열과 비교한다.
- 비교 과정에서 a의 문자와 b의 문자가 다르면 카운트해준다.
- 가능한 비교를 모드 끝낸 후 다른 문자열 개수가 제일 작은 경우를 출력한다.
코드
import sys
a, b = map(str, sys.stdin.readline().split())
res = []
# 두 문자열 길이의 차이만큼 반복
for i in range(len(b) - len(a) + 1):
cnt = 0 # 다른 문자열 개수
# 반복문을 통해 b의 인덱스를 +i 해주면서 a의 문자열과 비교
for j in range(len(a)):
# 다른 문자열이면 카운트
if a[j] != b[j + i]:
cnt += 1
# b의 인덱스를 +i 해주면서 비교했을 때 a의 문자열과 다른 문자열 개수를 추가
res.append(cnt)
# 다른 문자열 개수가 제일 작을 때가 차이가 최소인 경우
print(min(res))
github
GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법
내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.
github.com
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 14425번(파이썬): 문자열 집합 (0) | 2022.01.01 |
---|---|
[baekjoon] 백준 1439번(파이썬): 뒤집기 (0) | 2021.12.31 |
[baekjoon] 백준 2857번(파이썬): FBI (0) | 2021.12.29 |
[baekjoon] 백준 1213번(파이썬): 팰린드롬 만들기 (0) | 2021.12.28 |
[baekjoon] 백준 5525번(파이썬): IOIOI (0) | 2021.12.27 |