목록Stack (10)
나의 개발일지

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12973 🔑 : 스택 문자열 길이만큼만 반복하면 끝 스택이 비었거나 현재 문자(s[i])와 스택의 마지막(stack[-1])이 다르면 append 현재 문자와 스택의 마지막 요소가 같으면 스택에서 빼낸다. 최종적으로 스택이 비어있으면 모든 문자열을 없앨 수 있다는 뜻 def solution(s): stack = [] for i in range(len(s)): if not stack: stack.append(s[i]) # 스택이 비어있다면 넣기 else: if s[i] == stack[-1]: # 스택 마지막 값과 s[i]가 같으면 빼냄 stack.pop() else: stack.append(..

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12906 스택 문제 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. [1,1,3,3,0,1,1] → [1,3,0,1] answer이 비어있으면 무조건 넣고, 다음 숫자와 현재 answer에 들어있는 제일 마지막 값이 다르면 넣는다. def solution(arr): answer = [] st = -1 for i in range(len(arr)): if (st == -1 or answer[st] != arr[i]): answer.append(arr[i]) st += 1 return ans..