코딩테스트 역량 강화 교육(거점형 특화 프로그램)이라는 프로그램에 참여해 공부한 내용입니다.
- IT 직무로 취업을 희망하는 지원자들이 코딩테스트를 통과할 수 있는 알고리즘을 활용한 프로그래밍 교육이며, PCCP 자격증 취득이 목표인 프로그램
- 상세 설명 - 수원대학교(대학일자리 플러스센터)
앞서 공부한 스택을 사용해 Backspace 문제를 풀어보겠다.
현수는 주어진 문자열의 문자 순서대로 키보드 자판의 문자를 쳐 화면에 s문자열을 작성합니다.
문자열에는 '#'문자가 있는데 이 문자는 Backspace키를 의미합니다.
매개변수 s에 현수가 키보드 자판을 쳐야할 순서인 문자열이 주어지면 현수가 s문자열을 작성했을 때 최종적으로 화면에 작성된 문자열을 반환하는 프로그램을 작성하세요.
화면에는 적어도 문자 한 개는 작성되어 있습니다.
s | answer |
---|---|
"abc##ec#ab" | "aeab" |
"kefd#ef##s##" | "ke" |
"teac#cher##er" | "teacher" |
"englitk##shabcde##ff##ef##ashe####" | "englishabc" |
"itistime####gold" | "itisgold" |
def solution(s):
stack = []
for char in s:
if char != '#':
stack.append(char)
else:
if len(stack) > 0:
stack.pop()
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"))
s
에서 문자를 하나 받아 만약 #
이 아닌 경우
: char를 stack에 삽입맞는 경우
: stack이 비어있지 않을 때만 가장 마지막 문자 삭제join
문을 이용해 stack을 return