[BOJ] 1543: 문서검색

이슬비·2023년 2월 7일
0

Algorithm

목록 보기
71/110
post-thumbnail

곧 내가 너 정복하러 간다 부르트포스.

1. 내 풀이 - 실패

import sys
input = sys.stdin.readline

document = input()
word = input()

len_docu = len(document)
len_word = len(word)
minCount = 51

for _ in range(len_docu-len_word+1):
    count = 0
    for i in range(0, len_docu, len_word):
        if document[i:i+len_word] == word:
            count +=1
    minCount = min(minCount, count)
print(count)

테스트 케이스 다 맞았는데 !!!
왜 자꾸 틀리는데 !!!
라면서 씅낸 풀이다.

정말 ... ^^

이 풀이의 문제점은 문서에서 단어를 검색할 때 그 문서에서 그 단어가 있는지 여부에 따라 len_word만큼 움직이는 게 아니라 무조건 len_word만큼 움직이는 게 문제였다.

2. 내 풀이 2 - 성공

document = input()
word = input()

len_docu = len(document)
len_word = len(word)
i = 0
count = 0

for _ in range(len_docu-len_word+1):
    if document[i:i+len_word] == word:
        count += 1
        i += len_word
    else:
        i += 1
        
print(count)

그래서 그 부분을 else문을 통해서 수정했다.
처음에는 sys 모듈도 써줬다가 공백의 단어가 들어올 수 있지 않을까 ...? 싶어서 일단 기본 입력 함수를 사용했다.

3. 다른 사람 풀이

a = input()
b = input()
cnt = 0
n = 0
while n <= len(a) - len(b):
    if a[n:n + len(b)] == b:
        cnt += 1
        n += len(b)
    else:
        n += 1
print(cnt)

풀이 출처: https://pacific-ocean.tistory.com/359

두 번째 풀이랑 비슷하긴 한데 while 문을 써준게 좀 다르다. 근데 결국 그 의미는 동일 ...

4. 마치며

실버 4에도 이렇게 힘들어하면 우야노 ...

profile
정말 알아?

0개의 댓글