728x90
#1543
word = str(input())
search = str(input())
#문자열과 찾고자하는 타겟 문자열을 입력받는다.
count = 0
i = 0
#카운터 역할을 할 count와 i를 0으로 초기화해놓음
while i <= len(word) - len(search):
#문자열에서 위치를 잡고 타겟 문자열 길이만큼 조사를 하여
if word[i:i + len(search)]==search:
#일치할 경우 카운터 count를 증가시킴
count += 1
#i위치도 search의 길이만큼 옮겨서 다음조사를 준비
i += len(search)
else:
#일치하는 문자열을 찾지 못한경우 한칸 옮겨서 다음 조사 진행
i += 1
print(count)
이번 문제에서 배운점은 내가 작성한 정석적인 그리디 알고리즘 풀이법 보다는 스터디 동료분의 풀이에 더 있었다.
s = input()
target = input()
cnt = 0
s = s.replace(target, "*")
print(s)
print(s.count("*"))
이전에 다른 문제를 풀며 배웠던 replace함수를 이용하여 아주 효과적으로 문제풀이를 하셨다. 타겟 문자열에 해당하는 내용을 중복없이 자동으로 특정한 기호로 바꾸어줄 수 있는 replace문을 이용하여 원하는 문자열이 중복없이 몇번 발생하는지 조사하는 방법을 이용하셨다. 어떠한 알고리즘을 작성함에 있어서 정석적인 방법이 떠올라도 어려운 점이 있다면 그것을 더욱 간단하게 해결할 다른 방법은 없는지 계속 고민해보는 시간이 더 많이 필요하다고 느끼게 되었다.
728x90
'Sketch (Programming Language) > Python' 카테고리의 다른 글
Baekjoon Training #1012 (0) | 2022.10.01 |
---|---|
Baekjoon Training #1992 (0) | 2022.09.27 |
Baekjoon Training #1449 (0) | 2022.09.26 |
Baekjoon Training #1436 (0) | 2022.09.20 |
Baekjoon Training #7568 (2) | 2022.09.20 |