[Python] 백준 1543번: 문서 검색

Jonie Kwon·2022년 5월 1일
0
post-custom-banner

https://www.acmicpc.net/problem/1543

풀이

현재 위치 position에서 찾으려는 문자열을 발견하면 문자열의 길이만큼 위치를 변경하고, 찾지 못하면 +1만큼 위치를 변경한다.

코드

import sys
input = sys.stdin.readline
s = input().rstrip()
target = input().rstrip()
answer = 0
l = len(target)
count = 0
position = 0
while position <= len(s) - l:
    if target == s[position : position + l]:
        count += 1
        position += l
    else:
        position += 1
answer = max(answer, count)
print(answer)

다른 풀이

import sys
input = sys.stdin.readline
a = input().rstrip()
b = input().rstrip()
count = 0
while a.find(b) != -1:
    count += 1
    a = a[a.find(b) + len(b):]
print(count)

string.find() 를 이용해서 문자열이 처음 등장한 인덱스를 찾는다.
인덱스+문자열 길이로 인덱싱해서 중복된 문자열을 제거한 문자열에서 다시 탐색 반복

profile
메모하는 습관
post-custom-banner

0개의 댓글