★VER3.0★Deque★문자열슬라이싱★같은 숫자는 싫어[프로그래머스]
2023. 1. 3. 13:34
728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12906
VER 3.0
from collections import deque
def solution(arr):
arr = deque(arr)
# print(arr)
answer = [arr[0]]
while len(arr)>=1:
if arr[0] == answer[-1]:
arr.popleft()
continue
else:
answer.append(arr[0])
arr.popleft()
return answer
==> reutrn 으로 deque()은 Json 오류가 난다.
==> arr[0] == answer[-1] 이 POINT!
VER 2.0
def no_continuous(s):
a = []
for i in s:
if a[-1:] == [i]: #뒤에서부터 검증
continue
a.append(i)
return a
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print( no_continuous( "133303" ))
문자열 슬라이싱 잘 기억하자!!!!!!!!!!!
VER 1.0
from collections import deque
def solution(arr):
answer = []
queue = deque(arr)
queue2 = []
# for i in range(3):
# print(queue[i])
for i in range(len(arr)):
#print(i)
if len(queue)>1:
print("len(queue) : {}".format(len(queue)))
if queue[0] == queue[1]:
queue.popleft()
print("queue : {}".format(queue))
else:
queue2.append(queue.popleft())
else:
queue2.append(queue.popleft())
#queue[0] == queue[1] ==> queue.popleft() ==> [1,3,3,0,1,1]
#queue[0] != queue[1] ==> queue.append(queue.popleft()) ==> [3,3,0,1,1,1]
#queue[0] == queue[1] ==> queue.popleft() ==> [3,0,1,1,1]
#queue[0] != queue[1] ==> queue.append(queue.popleft()) ==> [0,1,1,1,3]
#queue[0] != queue[1] ==> queue.append(queue.popleft()) ==> [1,1,1,3,0]
#queue[0] == queue[1] ==> queue.popleft() ==> [3,0,1,1,1]
#print(queue)
# for i in arr:
# if i not in queue:
# queue.append(i)
# [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
#print('Hello Python')
return queue2
solution([1,1,3,3,0,1,1])
덱과 리스트 한번씩 더써서 그런지 효율성에서 떨어졌다.
728x90
반응형
'Python(프로그래머스) > 스택,큐' 카테고리의 다른 글
★리스트★스택★같은 숫자는 싫어[프로그래머스] (1) | 2023.06.18 |
---|---|
★DEQUE★split()★괄호 회전하기[프로그래머스] (0) | 2023.04.26 |
★DEQUE★다리를 지나는 트럭[프로그래머스] (0) | 2022.11.29 |
★DEQUE★enumerate★프린터[프로그래머스] (0) | 2022.11.19 |
VER2.0★DEL★DEQUE★기능개발[프로그래머스] (0) | 2022.11.19 |