728x90
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/12906

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

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
반응형

+ Recent posts