반응형
프로그래머스 짝지어 제거하기를 파이썬으로 풀어보겠다.
난이도는 레벨 2다.
문제
문자열에 연속된 부분을 다 지우는 것이다.
구현
처음에는 while로 구현하고 반복되는 문자가 나올 때마다
삭제하고 뒤로 돌아갈까 생각했지만 여러 번 지워질 때 성능이 좋지 않아서
다른 방법을 고민했다.
stack구조로 구현하는 게 제일 쉽고 효율성이 잘 나올 거라고 판단해서
stack구조를 사용했다.
반복문으로 문자열을 돌면서 stack의 top값과 같으면 pop을 하고
아니면 insert를 하는 방식을 선택했다.
코드
def solution(s):
temp = []
temp.append(s[0])
for c in s[1:]:
if temp and temp[-1]==c:
temp.pop()
else:
temp.append(c)
return 0 if len(temp) else 1
위의 구현에서의 설명과 같이 구현했다.
다른 풀이
효율성 테스트가 있어서 그런지
다른 방법은 보이지가 않고
코드의 가독성도 이 정도면 괜찮다고 생각해서 다른 풀이를 따로 하지 않겠다.
- 혹시 괜찮은 풀이가 있다면 댓글로 알려주세요!
반응형
'Coding Test > Python' 카테고리의 다른 글
[프로그래머스] 튜플 Python Code (0) | 2022.09.01 |
---|---|
[프로그래머스] 행렬 테두리 회전하기 Python Code (2) | 2022.09.01 |
[프로그래머스] 타겟 넘버 Python Code (0) | 2022.08.30 |
[프로그래머스] 올바른 괄호 Python Code (0) | 2022.08.30 |
[프로그래머스] 124나라의 숫자 (0) | 2022.08.29 |
댓글