공부하고 기록하는, 경제학과 출신 개발자의 노트

프로그래밍/코딩테스트 문제풀이

[Python] 프로그래머스. 짝지어 제거하기 (Level 3)

inspirit941 2019. 10. 31. 21:10
반응형

https://programmers.co.kr/learn/courses/30/lessons/12973

 

코딩테스트 연습 - 짝지어 제거하기 | 프로그래머스

짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들

programmers.co.kr

문자열 파싱으로 작업하면, 1,000,000이라는 문자열 길이 때문에 시간초과가 나는 문제.

stack 자료구조로 문자열의 앞에서부터 값을 집어넣고, 남은 문자열의 맨 앞단과 스택의 가장 윗값을 비교하면 해결할 수 있다.

deque 라이브러리로 popleft를 활용했는데, 일반 리스트를 활용한 것보다 처리속도가 빠르다.

 

 

반응형