728x90

 

- 오늘의  학습 키워드 : 스택/큐

- 문제 링크 :  https://school.programmers.co.kr/learn/courses/30/lessons/12906

 

프로그래머스

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

programmers.co.kr

 

- 제출한 코드  

def solution(arr):
    answer = []
    answer.append(arr[0])
    for i in range(1,len(arr)): #1234567...
        if answer and answer[-1] == arr[i]:
            answer.pop()  
        answer.append(arr[i])
    return answer

 

오늘의 회고

 

스택 (Stack)

스택은 후입선출(LIFO, Last In First Out) 구조입니다. 파이썬에서는 주로 리스트를 사용하여 스택을 구현합니다.

- 리스트 사용: 파이썬 리스트의 append()와 pop() 메서드를 사용하여 스택을 구현할 수 있습니다.

큐 (Queue)

큐는 선입선출(FIFO, First In First Out) 구조입니다. 파이썬에서는 주로 collections.deque를 사용하여 큐를 구현합니다.

  • deque 사용: collections.deque는 양쪽 끝에서 빠른 추가와 삭제가 가능한 덱(deque)을 제공합니다.

 

스택과 큐의 정의는 이러한데,

나는 스택의 방법으로 풀게 되었다.

 

def no_continuous(s):
    # 함수를 완성하세요
    a = []
    for i in s:
        if a[-1:] == [i]: continue
        a.append(i)
    return a

 

다른 사람들은 append함수만 이용해서 풀긴했는데, 나는 스택이 후입선출로 된 자료구조이다보니까 그 특성을 살려서 pop()함수도 쓰고싶어서 맨 위의 코드 처럼 작성했다!

 

참고로

answer[-1]는 파이썬의 리스트 인덱싱 방법 중 하나로, 리스트의 마지막 요소를 가리킨다. 파이썬에서 음수 인덱스를 사용하면 리스트의 끝에서부터 요소를 참조할 수 있습니다. 예를 들어, answer[-1]은 answer 리스트의 마지막 요소를 의미한다.

 

 

728x90

+ Recent posts