[Python] 백준 1543번:


쉬운 목차

파이썬 코드

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가 몇 개인지 반환