1차시 풀이
def solution(arr):
stack = []
while arr:
popData = arr.pop(0)
if not stack:
stack.append(popData)
elif stack[-1] != popData:
stack.append(popData)
return stack
주어진 배열의 값을 맨앞에서 하나씩 뽑은다음에 stack이라는 빈 배열에 넣어주고 넣어 줄때 존재 여부 확인하고 없을때만 추가해주는 방법
1차시 결과
주어진 배열의 크기가 커지게 되면 시간이 많이 걸려서 효율성 테스트에서 불합격 한듯 하다..
2차시 풀이
def solution(arr):
stack = []
for i in arr:
if not stack or stack[-1] != i:
stack.append(i)
return stack
1차시는 while루프 내에서 리스트의 pop(0)을 하게 되면 전체 시간 복잡도가 O(n^2)걸리게 된다. 2차시 방법은 for 루프 내에서 한번씩만 탐색을 하므로 O(n)의 시간이 걸리게 되므로 더 효율 적이다.