백준 1543번 - 문서 검색

Gyuhan Park·2021년 11월 18일
0

코딩테스트 정복

목록 보기
28/47

영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한다. 그 단어가 최대 몇 번 중복되지 않게 등장하는지 구하는 프로그램을 작성하시오.

# 정답 코드

index값 이용해서 처음 발견한 곳에서부터 단어 길이만큼 건너뛴 범위부터 다시 find()를 실행하여 풀었다. 문자열 내에서 못찾을 경우 -1을 반환하기 때문에 더이상 못찾거나 index값이 문서를 초과하는 경우 반복문을 탈출하였다.

import sys

input = sys.stdin.readline

docs = input().rstrip()
word = input().rstrip()

cur = 0
count = 0

while cur < len(docs):
  if docs.find(word, cur) == -1:
    break
  else:
    cur = docs.find(word, cur)
    count += 1
    cur += len(word)

print(count)

# 참고 코드

요즘 문제풀고 나서 다른 사람은 어떻게 풀었는지 확인하는 편인데 눈을 의심했다. 뭐지? 한사람만 숏코딩한거면 그러려니 하는데 첫페이지 전부다 같은 코드다. count() 자체가 인자값을 중복해서 세지 않는다는 점에서 가능한 것 같다. 이것도 문제풀이 요령이라고 할 수 있으려나..? 아무튼 신기했다.

print(input().count(input()))
profile
단단한 프론트엔드 개발자가 되고 싶은

0개의 댓글