# 문제
# 풀이
나는 파이썬의 find를 활용해서 문제를 풀었다. find를 사용하지 않아도 똑같은 방식으로 index값을 조정해줘서 풀 수 있다.
파이썬의 find함수는 3가지의 사용방법이 있다.
- 대상문자열.find( 찾을 문자열 )
- 대상문자열.find( 찾을 문자열, 시작위치 )
- 대상문자열.find( 찾을 문자열, 시작위치, 종료위치 )
find메서드는 찾을 첫번째 문자(열)의 인덱스를 반환해준다. 만약 찾지 못했다면 -1을 반환해주기 때문에 이점을 이용하면 쉽게 문제를 풀 수 있다.
중요한 것은 찾았다면 count를 +1 해준 후, find의 시작위치를 찾은 인덱스의 그 다음부터로 바꿔줘야한다.
# 코드
"""
find는 찾지 못하면 -1 반환, index함수는 에러 반환
find ( 찾을문자열 ) or
find( 찾을문자열, 시작위치 ) or
find( 찾을문자열, 시작위치, 종료위치)
"""
import sys
def solve():
case = sys.stdin.readline().strip()
target = sys.stdin.readline().strip()
cnt = 0
idx = 0
while True:
place = case.find(target,idx)
if place == -1 :
break
else :
idx = place + len(target)
cnt += 1
print(cnt)
if __name__ == '__main__':
solve()
# 마치며
'•알고리즘(Algorithm ) > 문제풀이' 카테고리의 다른 글
[백준-1236] 성지키기 파이썬 풀이 (0) | 2022.08.09 |
---|---|
[백준-1302] 베스트 셀러 파이썬 풀이 (0) | 2022.08.09 |
[백준-1568] 새 파이썬 풀이 (0) | 2022.08.09 |
[백준-1668] 트로피 진열 파이썬 (0) | 2022.08.09 |
[백준-2751] 수 정렬하기2 파이썬 (0) | 2022.08.09 |