def solution(arr):
stk = []
i = 0
while i < len(arr):
for n in arr:
if len(stk) == 0:
stk.extend(n)
elif stk[-1] == n:
stk = stk[:-1]
elif stk[-1] != n:
stk.extend(n)
else:
return [-1]
i += 1
return stk
stk.extend(n)
extend()
는 **iterable (리스트, 문자열 등 반복 가능한 객체)**만 받을 수 있어요.n
은 단순히 정수(0
또는 1
)라서 iterable이 아님 → TypeError
발생!n
을 그냥 하나의 원소로 넣고 싶다면 → append()
사용해야 함extend()
는 [n]
처럼 리스트로 감싸줘야 함<aside> 💡
extend() 가 이터러블만 받을 수 있다는걸 계속 잊는댜.. 기억하자!!
</aside>
<aside> 💡
음.. return은 stk만 하려고 했는데, 이번에도 -1을 리턴하는 곳에서 걸렸다..
또한
i
의 초기값을 0으로 설정하고 i
가 arr
의 길이보다 작으면 다음을 반복합니다.
이러한 조건이 있기래 while을 적었었는데, 굳이 필요가 있을까..
</aside>
지금 코드를 보면, while i < len(arr)
와 for n in arr
를 같이 쓰고 있어요.