https://www.acmicpc.net/problem/9935
replace
를 활용했다replace
를 활용할때, 최악의 경우 O()가 되어 시간 초과가 발생했다.import sys
input=sys.stdin.readline
a=input().rstrip()
bomb=input().rstrip()
i=0
count=len(a)//len(bomb)
while i<count:
i+=1
if len(a)==0:
break
else:
a=a.replace(bomb,'')
if len(a)==0:
print("FRULA")
else:
print(''.join(a))
import sys
input=sys.stdin.readline
a=input().rstrip()
bomb=input().rstrip()
stack=[]
count=len(bomb)
for i in range(len(a)):
stack.append(a[i])
if ''.join(stack[-count:]) == bomb:
for _ in range(count):
stack.pop()
if stack:
print(''.join(stack))
else:
print("FRULA")
문자열 관련 문제에서 내장 함수를 활용하는 건 항상 최적의 선택이 될 수 없다. 오히려 내장함수를 사용하는 것이 최악이 될 수 있다.
따라서 해당 문제의 시간 복잡도를 잘 고려해서, 내장 함수를 사용하자