[프로그래머스 스터디] 짝지어 제거하기

MinTa·2022년 3월 2일
0
post-thumbnail

문제

프로그래머스 짝지어 제거하기

1차 풀이

def solution(s):
    answer = 1
    
    string_list = [s[0]]
    
    for i in s[1:]:
        
        if string_list and i == string_list[-1]:
            string_list.pop()
        else:
            string_list.append(i)
    
    if string_list:
		answer = 0
    return answer

요약

  1. stack을 만들어 가장 첫문자를 넣어놓고 시작한다.
  2. 두번째 문자부터 루프를 돌며 stack의 가장 마지막과 같을시 stack에서 pop만 해주고 넘어간다 -> 곧 연속된 두문자 삭제와 같은 기능
  3. 같지 않다면 stack에 해당 문자를 넣어준다
  4. for문이 끝났을 때 stack에 문자가 남아있다면 모든 문자를 제거할 수 없는 것이므로 0을 return
  5. 반대로 stack에 아무것도 없을 시 모든 문자가 잘삭제된것이므로 1을 return한다.

파이써닉 Tip.

if string_list:
		answer = 0
    return answer

위와 같이 stack에 값이 있는지에 대한 검사를 파이써닉하게 한줄로 줄여서도 쓸 수 있었다.

return int(string_list == [])
profile
지(치지않고)꾸(준히)열(심히)

0개의 댓글