코딩테스트
[백준][Python] 9935 문자열 폭발
yeeejji
2024. 3. 24. 21:41
728x90
💣
https://www.acmicpc.net/problem/9935
9935번: 문자열 폭발
첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모
www.acmicpc.net
정답 코드
string = input()
explosion = input()
ans = []
last_char = explosion[-1]
for i in string:
ans.append(i)
if i == last_char and ''.join(ans[-len(explosion):]) == explosion:
del ans[-len(explosion):]
if len(ans) == 0:
print("FRULA")
else:
print(''.join(ans))
스택을 사용해서 풀면 된다.
주어진 문자열을 돌면서, 스택(ans)에 추가한다.
이때, 폭발 문자열의 끝 값과 동일한 문자를 발견했다면, 폭발 문자열의 길이만큼 스택에서 꺼내서 검사한다.
일치하는 경우 스택에서 삭제한다.
✂️ 리스트에서 요소를 삭제하고 싶다면? ✂️
1. del 키워드
리스트에서 특정 인덱스에 있는 요소나 슬라이스를 삭제
my_list = [1, 2, 3, 4, 5]
del my_list[1:3] # 인덱스 1부터 2까지의 요소를 삭제
# 슬라이스도 삭제 가능!
2. remove()
리스트에서 특정 값을 가진 첫 번째 요소를 삭제
my_list = [1, 2, 3, 4, 5]
my_list.remove(3) # 값이 3인 첫 번째 요소 삭제
3. pop()
리스트에서 특정 인덱스에 있는 요소를 삭제하고 해당 값을 반환
my_list = [1, 2, 3, 4, 5]
popped_value = my_list.pop(2) # 인덱스 2에 있는 요소 삭제하고 반환
🙀 어려웠던 점
나는 replace() 함수를 사용해서 문제를 풀었는데, 시간 초과가 발생했다.
(이렇게 쉽게 풀릴 것 같지 않았긴 했음 ^^)
잘 모르겠어서 구글링으로 찾아봤다. 보면 이해되는데 혼자 풀어보라 하면 못 풀겠는 뭐 그런,,, 넵
분발하자 *^^*
🫧 새롭게 알게 된 것
del 키워드!!