백준 1120. 문자열 - 문제풀이 (반복문) (Python/파이썬)
🔎 1120번. 문제 보기
https://www.acmicpc.net/problem/1120
💡 문제 풀기 전
길이가 같을 때는 바로 비교해서 출력을 하면 되지만,
길이가 다를 때는 앞뒤로 어떻게 조건을 체크해서 추가해주지? 라는 생각에 꽤 오래 고민했다. 결국 인터넷의 힘을 조금 빌렸는데 (...) 조건을 체크해서 어디로 추가할 지 고르는 것이 아니라 모든 경우의 수를 체크해서 그 중에서 차이의 최소값을 고르는 거였다!
새로운 문제 풀이 방법을 알 수 있게 되었다 :)
📋 코드 보기
from sys import stdin
A, B = stdin.readline().rstrip().split()
result = []
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
result.append(cnt)
print(min(result))
🥕 코드 풀이 및 관련 개념
처음에 코드만 봤을 때는 '엥? 뭔소리야?'라고 잠깐 생각했는데,
오히려 예제 코드를 넣으면서 중간 과정을 하나하나 print 해보니까 바로 이해했다.
ex. koder topcoder
(koder)
(topco)der
(koder)
t(opcod)er
(koder)
to(pcode)r
(koder)
top(coder)
for문을 돌리면 이렇게 5개씩 쭉 비교를 하고,
차이가 있을 때가 count를 해서 result 리스트에 append 되는데
마지막에는 그중에서 min 값을 print 해주기 때문에
금방 나온다!
모든 경우의 수를 체크해서 최소값을 출력하기!
Author And Source
이 문제에 관하여(백준 1120. 문자열 - 문제풀이 (반복문) (Python/파이썬)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dding_ji/baekjoon-1120저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)