알고리즘/baekjoon
baekjoon(1120-문자열)_ python
ash silver
2022. 5. 22. 11:02
1) 문제
2) 예시
3) 제출
import sys
input = sys.stdin.readline
a,b = input().split()
listA, listB = list(a), list(b)
minimum = len(listA)
for k in range(0, len(listB)-len(listA)+1):
tmp = len(listA)
# listA 첫 부분부터 일치하는지 확인
for i in range(0, len(listA)):
if listA[i] == listB[i+k]:
tmp -= 1
minimum = min(minimum, tmp)
print(minimum)
4) 메모리/시간/코드길이
5) PLUS
(처음 제출한 코드)
import sys
input = sys.stdin.readline
a,b = input().split()
listA, listB = list(a), list(b)
minimum = len(listA)
# 두 문자열의 길이가 같을 경우
if len(listA) == len(listB):
for i in range(0, len(listA)):
if listA[i] == listB[i]:
minimum -= 1
# 두 문자열의 길이가 다를 경우
else:
# listB의 어디서부터 시작할지 위치 선정
for k in range(0, len(listB)-len(listA)+1):
tmp = len(listA)
# listA 첫 부분부터 일치하는지 확인
for i in range(0, len(listA)):
if listA[i] == listB[i+k]:
tmp -= 1
minimum = min(minimum, tmp)
print(minimum)
=> 하면서도 조건문 안에 반복문 안에 반복문 안에 조건문이라 이상하다고 생각은 했다,,
문자열 길이가 다를 경우에 어떻게 구현해야할지 감이 안 잡혀서 같을 경우 먼저 구현하고 다를 경우 구현하다보니
이렇게 되었다,,
성공한 다른 사람들 코드를 보니 가장 바깥에 있는 조건문은 쓰지 않아도 된 다는 것을 알았다,,
그러면 제출한 코드와 같이 조건문 하나가 없어져서 조금 더 간결해질 수 있다.
문자열은 리스트로 따로 만들지 않아도 각 문자에 접근할 수 있다!!
sen = input() #hello
print(sen[0]) #h
이제 백준에 있는 다른 사람들 코드랑 거의 비슷하다.
그냥 반복문을 잘 사용할 줄 아는지 판단하는 문제같다.