파이썬 코드
document = input()
word = input()
length = len(document)
ans = 0
i = 0 # 단어를 찾기 시작할 index
while len(document) - i >= len(word): # 문서의 길이 - i가 찾을 단어와 같거나 작아진다면 loop 탈출
if document(i : i + len(word)) == word: # i부터 단어의 길이만큼 봤을때 단어와 일치하는지 확인
i += len(word) # 일치한다면 겹치는 부분을 건너뛰기 위해 단어만큼 index 증가
ans += 1
else:
i += 1
print(ans)
여러가지 방법으로 풀 수 있지만 루프에서 단어의 길이만큼 인덱스를 늘려가면서 찾아서 해결했습니다.
다른 솔루션 중에서 실행 시간에는 큰 차이가 없습니다.
Python의 계산 기능을 사용하는 거의 한 줄 솔루션이 있습니다.
솔루션을 본 후 간결한 코드를 추구하기로 결정하고 Python의 유용한 기능을 사용하는 능력을 개발했습니다!
계산으로 해결
document = input()
word = input()
print(document.count(word))
파이썬의 카운팅 함수
- 문자열에서 사용되는 메서드
- 문자열이나 목록에서 찾으려는 문자 수를 찾을 수 있습니다.
- 사전이나 문장에서 사용할 수 없습니다.
- 사전이나 문장에서 사용할 수 없습니다.
- str.count(자기, x, __start, __end)
- st에서 x 찾기
- start 또는 end에 아무 것도 입력하지 않으면 문자열의 처음부터 끝까지 검색합니다.
- 범위에 시작은 포함되지만 끝은 포함되지 않음
- str.(‘x’) → 합계에서 x의 수를 반환합니다.
- Str(‘x’, 2, 4) → 2번째 인덱스와 3번째 인덱스 사이에 존재하는 x의 개수 반환
- ex) str이 a(0)b(1)c(2)d(3)e(4)(괄호 안의 숫자가 인덱스)이면 cde에 x가 몇 개인지 반환
- str.(‘x’) → 합계에서 x의 수를 반환합니다.