Level 2. 짝지어 제거하기

Pear_Mh·2021년 6월 18일
0

Programmers-Level 2.

목록 보기
1/40

01. 짝지어 제거하기

코딩테스트 연습 > 2017 팁스타운 > 짝지어 제거하기
https://programmers.co.kr/learn/courses/30/lessons/12973


문제 설명

Input value =

  • s = 알파벳 소문자로 이루어진 문자열

Process =

  1. 같은 알파벳 2개가 붙어 있는 짝을 찾아 제거

  2. 앞 뒤로 문자열을 이어 붙인다.

  3. 1-2를 반복해서 문자열을 제거(갱신)

Output value =

  • s = ' ' 일 경우 1

  • 아닐 경우 0


제한 사항

  • 문자열의 길이 : 1,000,000이하의 자연수

  • 문자열은 모두 소문자로 이루어져 있다.


문제 구상

#00
s = 'baabaa'
answer = []
#01
for i in s:
    if answer == [] or answer[-1]!=i:
        answer.append(i)
    else:
        answer.pop()
if answer == []:
    print(1)
else:
    print(0)

문제 풀이

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

# Code test
s = 'baabaaa'
solution(s)

마치며

  1. 빈 리스트를 만들어 하나씩 값을 필터링 하며 계산하는 것

  2. 문자열 그대로 사용하지 않는 이유는 해당 과정을 수행하며 이미 수행된 값을 제거해야 함으로(pop() 사용하기 위해)

profile
Beyond the new era.

0개의 댓글

관련 채용 정보