본문 바로가기
알고리즘/백준 알고리즘

[Baekjoon] 백준 알고리즘: 1543 - 문서검색

by 며루치꽃 2021. 6. 7.

문제

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

 

1543번: 문서 검색

세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한

www.acmicpc.net

내가 생각했던 풀이과정

 

1. 문자열과 검색하고 싶은 단어를 각각 입력을 받는다

 

2. count와 index를 0으로 초기화한다.

 

3. 문자열과 검색하고 싶은 단어가 같은지 확인하려면 단어를 통째로 잘랐을 때 길이가 넘어가면 안되기 때문에

index는 최대 문자열 길이에서 검색하고 싶은 단어의 길이를 뺀 길이이다.

 

4. 만약에 문자열과 검색하고 싶은 단어 길이만큼 비교하였을 때 같다면

  1) count를 하나 더해주고

  2) index는 단어 길이 만큼 더해준다. 단어 길이만큼 더해주는 이유는 중복을 피하기 위해서이다. 

 

5. 만약에 문자열과 검색하고 싶은 단어 길이만큼 비교하였을 때 다르다면

  1) 재검색을 위해 index를 하나만 더해준다

 

6. count를 출력한다

 

나의 풀이

word = input() # 문자열
target = input() # 검색하고 싶은 단어
count = 0
i = 0

while i <= len(word) - len(target):
    if word[i:i+len(target)] == target:
        count += 1
        i += len(target)
    else:
        i += 1
print(count)

다른 사람의 풀이

doc = input()
word = input()
 
index = 0
cnt = 0
 
while len(doc) - index >= len(word):
    if doc[index:index+len(word)] == word:
        cnt += 1
        index += len(word)
    else:
        index += 1
 
print(cnt)

 

새로 알게된 점, 확인해야할 점

 

댓글