-
프로그래머스 짝지어제거하기TodayILearned/알고리즘 2021. 6. 14. 01:23
짝지어 제거하기
종류 : 스택/큐
난이도 : 하
코드
def solution(s): answer = [] lst = list(s) for i in range(0,len(lst)): answer.append(lst[i]) while(len(answer) >= 2): if(answer[-1] == answer[-2]): answer.pop() answer.pop(-1) break if answer: return 0 else: return 1 return answer
풀이
- 주어진 문자열(s)를 list함수를 이용해 배열로 만든다.
- 배열의 길이만큼 answer에 문자를 하나씩 push(append)한다.
- 만약 answer의 길이가 2 이상이고, 문자열 두개를 비교했을 때 같다면, 순서대로 pop한다.
- 단 무한반복되지않도록 break를 걸어준다.
- loop를 빠져나왔을 때 answer내 문자가 남아있다면 0 아니라면 1을 리턴해준다.
생각해 볼 점
- 위 풀이의 시간복잡도는 O(n)
- while문이 꼭 들어가지 않아도 될 것 같다.
'TodayILearned > 알고리즘' 카테고리의 다른 글
Intersection of Two Arrays II 자바스크립트 (0) 2021.08.16 프로그래머스 최댓값과 최솟값 (0) 2021.06.14 [알고리즘] 1436 파이썬 (0) 2021.03.18 [알고리즘] 10828 파이썬 (0) 2021.03.18 [알고리즘] 백준 1260 파이썬 (0) 2021.03.18