문제
https://www.acmicpc.net/problem/9935
입력
- 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다.
- 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다.
- 두 문자열은 모두 알파벳 소문자와 대문자, 숫자 0, 1, ..., 9로만 이루어져 있다.
출력
- 첫째 줄에 모든 폭발이 끝난 후 남은 문자열을 출력한다.
입력 예제
mirkovC4nizCC44
C4
12ab112ab2ab
12ab
출력 예제
mirkovniz
FRULA
문제 풀이
- stack에 문자를 하나씩 넣으면서 bomb문자가 있는지 확인한다.
- bomb 문자가 있다면 bomb의 길이만큼 stack에서 pop한다.
- stack에 남아있는 문자가 없다면 FRULA를 출력한다.
코드
word = str(input())
bomb = str(input())
bomb_len = len(bomb)
# stack에 문자열 넣으면서 bomb가 존재하는지 뒤에서부터 확인
stack = []
for i in range(len(word)):
stack.append(word[i])
if ''.join(stack[-bomb_len:]) == bomb:
for j in range(bomb_len):
stack.pop()
if not stack:
print("FRULA")
else:
print(''.join(stack))
word = str(input())
bomb = str(input())
# print(word)
# while True:
while bomb in word:
word = word.replace(bomb, "")
if word == "":
print("FRULA")
else:
print(word)
문자열의 크기가 1,000,000 까지 가능하기 때문에 stack을 사용하지 않고 파이썬에 내장된 문자열 함수를 사용하면 시간초과 난다
'Algorithm > Stack & Queue' 카테고리의 다른 글
| [Python] 프로그래머스 프로세스 (0) | 2024.07.17 |
|---|---|
| [Python] 프로그래머스 기능개발 (0) | 2024.07.17 |
| [JAVA] 백준 1715번 카드 정렬하기 (1) | 2023.12.13 |
| [JAVA] 백준 11000번 강의실 배정 (1) | 2023.12.13 |
| [Python] 백준 1158번 요세푸스 문제 (0) | 2023.06.17 |