[알고리즘 전략] python 기본 자료구조 정리
·
알고리즘
** [한권으로 합격하는 취업 코딩테스트] 책을 참고해 작성했습니다.** 주의점, 기억해야할 것을 위주로 작성합니다.  배열- 선언 시 주의점 a1 = [[0] * 5] * 3a1[1][1] = 99 # [1][1] 외에 다른 곳의 값도 99로 출력됨. a2 = [[0] * 5 for _ in range(3)]a2[1][1] = 99 # [1][1] 만 변경됨. - 삽입/삭제는 적고 조회가 잦다 => 배열 - 삽입/삭제가 많고 조회가 적다 => 연결리스트 ** 대표문제 - 요세푸스 문제 0  스택/큐  스택 - LIFO Last Input First Output - 삽입/삭제: O(N)- 배열 사용, append(), pop() - 스택 활용 문제: 입력을 순차적으로 살펴보면서 각각의 데이터를 스택에 언..
[프로그래머스/Python] 알고리즘고득점Kit-힙(Heap)-이중우선순위큐
·
코딩테스트/프로그래머스
📌 문제링크https://school.programmers.co.kr/learn/courses/30/lessons/42628# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 📌 문제설명 이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. 이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요.  # 제한사항 operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입..
[알고리즘/Python] 힙(Heap)
·
알고리즘
📌 힙 힙은 우선순위 큐를 위해 만들어진 자료구조로, 완전 이진트리의 일종이다.여러 값 중 최대/최소 값을 빠르게 찾아내도록 만들어진 반정렬 상태이다. 힙에서는 중복된 값을 허용한다. 최대/최소 값을 찾기 위해서 O(n)의 시간이 걸리지만, 힙을 사용하면 O(logN) 만큼 소요된다.  ✅ 반정렬 상태 (느슨한 정렬 상태)큰 값이 상위 레벨에 있고 작은 값이 하위 레벨에 있다.부모 노드의 키 값이 자식 노드의 키 값보다 항상 크거나 작은 이진 트리이다.✅ 우선순위 큐들어간 순서와 상관 없이높은 우선순위를 가진 원소는 낮은 우선순위를 가진 원소보다 먼저 처리만약 두 원소가 같은 우선순위를 가진다면 큐에서 그들의 순서에 의해 처리✅ 완전 이진트리 자식 노드가 최대 2개만 채워진다. 우선순위 큐 순서대로 채..
[프로그래머스/Python] 알고리즘고득점Kit-힙(Heap)-더 맵게
·
카테고리 없음
📌 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  📌 문제설명 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다.  섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2)  L..