문제
https://www.acmicpc.net/problem/1543
내가 생각했던 풀이과정
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)
새로 알게된 점, 확인해야할 점
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[Baekjoon] 백준 알고리즘: 11899 - 괄호 끼워넣기 (0) | 2021.06.19 |
---|---|
[Baekjoon] 백준 알고리즘: 1302 - 베스트셀러 (2) | 2021.06.14 |
[Baekjoon] 백준 알고리즘: 1676 - 팩토리얼 0의 개수 (0) | 2021.06.06 |
[Baekjoon] 백준 알고리즘: 1057 - 토너먼트 (0) | 2021.06.02 |
[Baekjoon] 백준 알고리즘: 9012 - 괄호 (0) | 2021.05.25 |
댓글