코딩테스트 연습 > 2017 팁스타운 > 짝지어 제거하기
문제
https://programmers.co.kr/learn/courses/30/lessons/12973
핵심 개념
스택
이런식으로 데이터를 넣어줍니다. 왜 이걸 쓰냐면 메모리를 효율적으로 쓰기 위해서 입니다. 지금 이 문제에서 우리는 주어진 문자열을 모두 알 필요가 없습니다.
문제를 잘 이해해 본다면 우리는 지금까지 처리되지 못한 문자와 다음 문자만 알면 됩니다. 코드로 구현하면 다음과 같이 됩니다.
stack = []
for i in s:
if len(stack) != 0:
if i == stack[-1]:
stack.pop()
else:
stack.append(i)
else:
stack.append(i)
처음에 스택에는 아무것도 들어있지 않습니다. 하지만 위에 있는 그림처럼 우리는 문자를 하나씩 넣어줍니다 (append를 push로 이해하면 될 것 같습니다!).
이러한 상황에서 if 새로 들어올 친구가 맨 위에 있는 스택과 같다면 스택을 pop하게 됩니다.
코드
def solution(s):
stack = []
for i in s:
if len(stack) != 0:
if i == stack[-1]:
stack.pop()
else:
stack.append(i)
else:
stack.append(i)
if len(stack) == 0:
return 1
else:
return 0
def solution(s):
stack = []
for i in s:
if len(stack) != 0:
if i == stack[-1]:
stack.pop()
else:
stack.append(i)
else:
stack.append(i)
if len(stack) == 0:
return 1
else:
return 0
도움이 되었기를 바라면서 글을 마치겠습니다.
Author And Source
이 문제에 관하여(코딩테스트 연습 > 2017 팁스타운 > 짝지어 제거하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jung0228/코딩테스트-연습-2017-팁스타운-짝지어-제거하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)