목차
Backspace
현수는 주어진 문자열의 문자 순서대로 키보드 자판의 문자를 쳐 화면에 s문자열을 작성합니 다. 문자열에는 '#'문자가 있는데 이 문자는 Backspace키를 의미합니다.
매개변수 s에 현수가 키보드 자판을 쳐야할 순서인 문자열이 주어지면 현수가 s문자열을 작성 했을 때 최종적으로 화면에 작성된 문자열을 반환하는 프로그램을 작성하세요.
화면에는 적어도 문자 한 개는 작성되어 있습니다.
제한사항:
• 문자열 s의 길이는 1,000을 넘지 않습니다.
나의 코드
def solution(s):
answer = ""
stack=[]
for x in s:
if x=='#':
stack.pop()
else:
stack.append(x)
return answer.join(map(str,stack))
print(solution("abc##ec#ab"))
print(solution("kefd#ef##s##"))
print(solution("teac#cher##er"))
print(solution("englitk##shabcde##ff##ef##ashe####"))
print(solution("itistime####gold"))
스택의 기본 성질인 Last In Last Out을 사용하여 작성
정답 코드
def solution(s):
stack = []
for x in s:
if x == '#':
if len(stack) > 0:
stack.pop()
else:
stack.append(x)
return "".join(stack)
print(solution("abc##ec#ab"))
print(solution("kefd#ef##s##"))
print(solution("teac#cher##er"))
print(solution("englitk##shabcde##ff##ef##ashe####"))
print(solution("itistime####gold"))
나의 코드와 거의 동일하나 위 문제의 입력 예제 뿐 아니라 초기에 #이 처음 들어오는 경우에 대한
예외처리를 해주었다.
'코딩테스트[파이썬] > 입문자를 위한 코딩테스트 핵심' 카테고리의 다른 글
[스택과 큐] -샌드위치 (0) | 2024.01.23 |
---|---|
[스택 과 큐] -연속된 문자 지우기 (0) | 2024.01.23 |
[스택] - 올바른 괄호 (0) | 2024.01.23 |
[이진탐색] -고정된 숫자 (0) | 2024.01.23 |
[이진탐색] -트럭 찾기 (0) | 2024.01.23 |