데크(Deque) 우선순위 큐(Priority Queue) 스택과 큐의 특징을 모두 가지고 있는 복합 자료형으로 양쪽에서 삭제와 삽입을 모두 처리할 수 있음 이중 연결 리스트(가장 좋음), 배열, 연결 리스트로 구현 가능 어떤 특정 조건에 따라 우선 순위가 가장 높은 요소가 추출되는 자료형 -> 정렬 알고리즘을 기반으로 함 ex. 가장 큰 값을 추출하는 최댓값 추출 기본 리스트 자료형의 경우, 맨 뒤쪽 원소를 기준으로 삽입, 삭제를 수행하기 때문에 연산 리스트에 포함된 데이터의 수에 따라 시간 복잡도가 O(N)임 * append(), pop() deque에서는 리스트 자료형과 다르게 인덱싱, 슬라이싱 등의 기능은 사용할 수 없지만 연속적으로 나열된 데이터의 시작 혹은 끝부분에 데이터 삽입 및 삭제 시 매..
def solution(arr): answer = [] #음수를 우선 할당하여 첫번째 요소가 무조건 추가되도록 함 last =-1 for a in arr: #이전 값과 같지 않을 때만 a를 추가함 if a != last: answer.append(a) #다음 비교를 위해 값을 last 에 넣어줌 last=a return answer print(solution([1,1,2,3,1])) https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr
스택(Stack) 큐(Queue) LIFO(Last-in-First-Out) 마지막에 들어온 원소부터 반환함 -> 쌓인 접시를 생각해보자 FIFO(First-in-First-Out) 첫번째로 들어온 원소를 첫번째로 반환함 -> 줄서기 push() : 요소를 컬렉션에 추가함 pop() :아직 제거 되지 않은 가장 최근에 삽입된 요소를 제거함 데크(Deque)나 우선순위 큐(Priority Queue) 같은 변형이 존재함 너비 우선 탐색(Breadth-First Search)이나 캐시 구현에 사용 리스트는 스택과 큐의 모든 연산을 지원함. 다만, 리스트는 동적 배열로 구성되어 있어 큐의 연산을 수행하기에 효율적이지 않기 때문에 큐는 데크(Deque)라는 별도의 자료형을 사용하는 것이 좋은 성능을 낼 수 있음..