728x90
반응형
1. 문제 설명
2. 풀이과정
문자열을 매번 짝지어진 문자열을 제거하고 이어 붙이는 작업을 문자열이 공백이 될 때까지 반복하는 방법으로 코드를 작성하면 반복문이 많이 수행되게 되어 시간 초과가 뜬다.
하여 반복문을 1개만 작성하여 문제를 해결하기 위해 스택(Stack) 구조를 사용하여 문제를 해결하였다.
- 스택으로 사용할 리스트를 생성한다. li = list()
- 입력받은 문자열의 각 문자를 추출한다. for i in s
- 만약 스택이 비어있으면 무조건 추출한 문자를 스택에 삽입한다. if (len(li) == 0): li.append(i)
- 스택이 비어있지 않고 스택의 마지막 원소(top)의 값이 추출한 문자와 동일한 문자이면 elif (i == i[len(li) - 1])
- 스택에서 삭제한다. li.pop()
- 그것도 아니라면 추출한 문자를 스택에 삽입한다. else: li.append(i)
- 반복문이 끝나고 스택의 길이가 0이면 짝지어 제거하기가 성공적으로 이루어졌다. if (len(li) == 0): answer = 1
반응형
3. 소스코드
def solution(s):
answer = 0
li = list()
for i in s:
if (len(li) == 0):
li.append(i)
elif (i == li[len(li) - 1]):
li.pop()
else:
li.append(i)
if (len(li) == 0):
answer = 1
return answer
728x90
반응형
'프로그래머스 > Python' 카테고리의 다른 글
[프로그래머스] 숫자 문자열과 영단어 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.08 |
---|---|
[프로그래머스] [1차] 비밀지도 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.08 |
[프로그래머스] 카펫 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.08 |
[프로그래머스] 영어 끝말잇기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.08 |
[프로그래머스] 크기가 작은 부분 문자열 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.07 |
[프로그래머스] 최소직사각형 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.07 |
[프로그래머스] 시저 암호 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.07 |
[프로그래머스] 삼총사 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.07 |