본문 바로가기
백준

[Python] 백준 9935번 문자열 폭발

by MINU.SHINNNN 2024. 9. 27.

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

 

풀이

string 내장함수 partition을 사용하면 문제를 쉽게 해결 할 수 있으나 string 범위가 1000000 이므로 시간초과가 발생합니다.

따라서 stack구조를 사용해 한번의 반복문으로 해결합니다.

stack의 폭발문자열의 길이에 해당하는 마지막 문자열을 검사하여, 폭발문자열이라면 stack에서 pop 해줍니다.

string = input()
exp = input()
ex_len = len(exp)
# while True:
#     s = string.partition(exp)
#     if s[1] == '':
#         break
#     string = str(s[0]) + str(s[2])

# if string == '':
#     print('FRULA')
# else:
#     print(string) 

stack = []
for i in range(len(string)):
    stack.append(string[i])
    if ''.join(stack[-ex_len:]) == exp:
        for _ in range(ex_len):
            stack.pop()

if stack:
    print(''.join(stack))
else:
    print('FRULA')

'백준' 카테고리의 다른 글

[Python] 백준 대피소  (1) 2024.09.25
[C++] 백준 전자레인지  (0) 2024.06.20
[C++] 백준 세탁소 사장 동혁  (0) 2024.06.20
[C++] 백준 고층 건물  (0) 2024.06.18
[C++] 백준 투명  (0) 2024.06.18