힙 2분 힙의 배열에 의한 구현에서의 노드 index 이 때, 자신의 노드에 대해서 아이 번호와 부모 번호는 이하와 같이 되지만, 이것의 설명. 이진 트리의 깊이 $ d $의 노드 수는 $ 2 ^ d (d = 0, 1, 2, ...) $이며 깊이 $ d $ 이하의 모든 노드 수는 이 가장 왼쪽 노드 $2^d$에 대한 왼쪽 아이는 $2^(d+1)=2*2^d$, 오른쪽 아이는 $2*2^d + 1$로 1.이 성립한다. 깊이 $d$의 왼쪽에서 $i-1... 우선 순위 대기열힙알고리즘 [Swift] 값타입참조타입스택영역힙영역 Swift를 공부하는 사람이라면 지겹게 들어왔고 듣고있고 아패로도캐속 듣게 될...면접 단골 질문이라는 이 키워드 자유의 모미 되고 싶어서 한번 정리를 해보겠습니다. 값타입은 선언할 때마다 값을 복사해서 사용한다. 원본에 영향이 없다. 참조타입은 원본의 주소값을 가리킨다. 변경시 원본도 변경된다. 위 상황에서 b는 a인스턴스가 위치한 주소를 가리키고 있다. b의 프로퍼티를 변경한다면 b가 가... swift값타입struct힙스택참조타입classclass [백준 7662번] 이중 우선순위 큐 입력값을 힙에 넣을 때 해시값 역할을 해주는 변수인 idx를 사용했다. 같은 숫자가 힙 안에 있어도 idx 값이 서로 다르기 다른 값으로 식별할 수 있다. d[idx]: 어떤 힙에서 뽑은 최대값 혹은 최소값이 이미 다른 힙에서 제거됐던 원소라면 d[idx] 값이 False 이다. while 문을 먼저 사용하여 뽑을 원소의 idx가 True가 나올 때 까지 pop()해준다. 만약 처음으로 뽑는... 힙백준백준 Algorithm/programmers/힙/level2/더 맵게 (with python) 리스트 scoville을 내림차순으로 정렬한다. scoville의 마지막 원소는 가장 안 매운 음식의 스코빌 지수가 된다. 두 음식을 섞었을 때 리스트에서 하나의 요소를 삭제해야 한다. 이때 만약 오름차순으로 정렬한다면 index 0의 요소를 삭제해야하는데 리스트에서 index 0 의 요소를 삭제하면 O(N)의 시간이 걸린다. 나름 시간 복잡도를 줄이기 위해서 내림차순으로 정렬했다.(ㅠㅠ) ... 알고리즘 문제힙programmersprogrammers 알기쉬운 알고리즘 4주차(1) - 트리 📍 트리 Root Node: 트리 맨 위에 있는 노드 Parent Node: 어떤 노드의 상위 레벨에 연결된 노드 Child Node: 어떤 노드의 하위 레벨에 연결된 노드 이진 트리(Binary Tree)의 특징은 각 노드가 최대 두 개의 자식을 가진다는 것입니다. 완전 이진 트리(Complete Binary Tree)의 특징은 노드를 삽입할 때 최하단 왼쪽 노드부터 차례대로 삽입해야 한다... python힙알고리즘트리python [Algorithm] 우선순위 큐 - 힙 예를 들어, 아래와 같은 이진트리는 높이가 2인 이진트리라고 할 수 있다(0부터 시작한다 했을 때). 이유는 삽입시에는 완전 이진트리의 속성에 맞게 왼쪽부터 차례로 봤을 때 가장 마지막에 빈 부분부터 채워넣는데, 예를 들어, 위의 그림에서는 6의 오른쪽 자식요소로 채워넣게 될 것이다. 그러나, 만약에 채워넣는 수가 2라고 하면, 힙의 특성상 부모요소는 무조건 자식요소보다 작아야하기 때문에 만... 우선순위큐힙heapheap 힙(Heap) = 우선 순위 큐 이진트리(binary tree) : 모든 노드들의 자식 노드가 두개 이하인 트리 완전이진트리(complete binary tree) : 부모, 왼쪽자식, 오른쪽자식 순으로 채워지는 트리 루트에 최대값이 있는 Max Heap과 루트에 최소값이 있는 Min Heap으로 구분됨 Max Heap의 경우 Heap의 각 노드의 값은 해당 노드의 자식 노드가 가진 값보다 커야함 Min Heap의 경우 반... 우선 순위 큐힙priority queueheapheap [프로그래머스] 디스크 컨트롤러 (python 파이썬) 힙프로그래머스프로그래머스 [자료구조] 힙(Heap) 최소 힙(Min Heap)과 최대 힙(Max Heap)이 있습니다. 1. 📌 힙이란? 2. 📌 힙의 구조, 동작 원리 3. 📌 파이썬 heapq 라이브러리 4. 📌 힙 자료구조의 활용 완전 이진 트리의 일종 부모 노드의 키 값이 자식 노드의 키 값보다 항상 큰(작은) 이진 트리 시간복잡도 : 삽입, 삭제 둘 다 O(logN) 보통 리스트(배열)에 저장한다. 구현을 쉽게 하기 위해서 첫 번째 ... python힙자료구조heapheap 더 맵게(python) 나의 풀이 point #1 heap.heapify를 하면 전체 정렬이 되지는 않지막 적어도 리스트의 [0]은 제일 작은 수가 올 수 있게 할 수 있다. point #2 if len(scoville) > 1: 을 if scoville:로 하면 런타임 오류가 난다?... -> 둘다 scoville 안에 요소가 있는 것을 의미하는 것이 아닌가?? 알게된 점 heap의 용법에 대해 자세하게 알게 되... 힙프로그래머스프로그래머스 최단 경로_다익스트라 가장 짧은 경로를 찾는 알고리즘 각 지점은 그래프에서 노드로 표현 특정한 노드에서 출발하여 다른 모든 노드로 가는 최단 경로 계산 다익스트라 알고리즘은 그리디 알고리즘으로 분류 매 상황에서 가장 비용이 적은 노드를 선택해 임의의 과정을 반복 다익스트라 알고리즘 동작 과정 살펴보기 그리디 알고리즘: 매 상황에서 방문하지 않은 가장 비용이 적은 노드를 선택 단계를 거치며 한 번 처리된 노드의 최... 알고리즘다익스트라최대 힙heap우선순위 큐최소 힙힙최단경로heap [파이썬] 더 맵게 문제 출처 : 👩🦰 나의 풀이 힙 scoville의 0번째 인덱스 값이 K보다 작을 동안에만 while문을 실행한다. 힙에서 더이상 pop할 요소가 없을 때 IndexError로 처리되어 -1이 반환된다. scoville의 길이가 2이상일 동안 반복문이 작동한다. 반복문이 끝난 후 return -1을 하는 것은 모든 음식의 스코빌 지수가 K이상이 안 된다는 것이다. 👩🦳 다른 사람 풀이 ... 힙프로그래머스 더 맵게heapheap 프로그래머스 - 단속 카메라 with Java 이런 문제 유형이 코딩 테스트로 자주 출제되는 것 같습니다. 뭔가 공통된 부분에 설치를 한다. 확인을 한다라는 포인트로 문제가 기출이 되면 힙으로 해결하면 됩니다. 자바에서는 우선 순위 큐로 해결이 가능합니다. 알고리즘 동작 순서 모든 차량 운행 정보를 진입 지점 오름차순으로 정렬합니다. 동일한 경우는 진출 지점 오름차순으로 합니다. 운행 정보 하나를 빼옵니다 카메라 개수 한 개 증가 가져온... 단속카메라Java힙프로그래머스Java 코딩테스트 카드 정렬하기 문제풀이 이코테 카드 정렬하기(level 2) 문제풀이 제일 작은 값을 합쳤을때 최적의 해가 되므로 우선순위 큐를 이용하여 제일 작은 값 두개를 합치고 result에 더한 후 힙에 넣는다.... 이코테힙백준정렬백준 백준 1715번: 카드 정렬하기 문제 동적 집합에서 최소값/최대값을 반복적으로 활용할 때 우선순위 큐 활용하기 기록 포인트 동적 집합에서 최소값/최대값을 반복적으로 확인해야 할 때 우선순위 큐를 활용하는 방법 매번 전체 정렬을 할 필요 없이 최소값/최대값만 유지해주기 때문에 더 효율적임 그 대표적인 사례가 이번 문제임 여러 길이의 정렬된 카드 묶음 중 2개를 골라 하나의 묶음으로 합치는 작업을 반복함 이를 효율화하기 위해 ... 힙우선순위 큐우선순위 큐
2분 힙의 배열에 의한 구현에서의 노드 index 이 때, 자신의 노드에 대해서 아이 번호와 부모 번호는 이하와 같이 되지만, 이것의 설명. 이진 트리의 깊이 $ d $의 노드 수는 $ 2 ^ d (d = 0, 1, 2, ...) $이며 깊이 $ d $ 이하의 모든 노드 수는 이 가장 왼쪽 노드 $2^d$에 대한 왼쪽 아이는 $2^(d+1)=2*2^d$, 오른쪽 아이는 $2*2^d + 1$로 1.이 성립한다. 깊이 $d$의 왼쪽에서 $i-1... 우선 순위 대기열힙알고리즘 [Swift] 값타입참조타입스택영역힙영역 Swift를 공부하는 사람이라면 지겹게 들어왔고 듣고있고 아패로도캐속 듣게 될...면접 단골 질문이라는 이 키워드 자유의 모미 되고 싶어서 한번 정리를 해보겠습니다. 값타입은 선언할 때마다 값을 복사해서 사용한다. 원본에 영향이 없다. 참조타입은 원본의 주소값을 가리킨다. 변경시 원본도 변경된다. 위 상황에서 b는 a인스턴스가 위치한 주소를 가리키고 있다. b의 프로퍼티를 변경한다면 b가 가... swift값타입struct힙스택참조타입classclass [백준 7662번] 이중 우선순위 큐 입력값을 힙에 넣을 때 해시값 역할을 해주는 변수인 idx를 사용했다. 같은 숫자가 힙 안에 있어도 idx 값이 서로 다르기 다른 값으로 식별할 수 있다. d[idx]: 어떤 힙에서 뽑은 최대값 혹은 최소값이 이미 다른 힙에서 제거됐던 원소라면 d[idx] 값이 False 이다. while 문을 먼저 사용하여 뽑을 원소의 idx가 True가 나올 때 까지 pop()해준다. 만약 처음으로 뽑는... 힙백준백준 Algorithm/programmers/힙/level2/더 맵게 (with python) 리스트 scoville을 내림차순으로 정렬한다. scoville의 마지막 원소는 가장 안 매운 음식의 스코빌 지수가 된다. 두 음식을 섞었을 때 리스트에서 하나의 요소를 삭제해야 한다. 이때 만약 오름차순으로 정렬한다면 index 0의 요소를 삭제해야하는데 리스트에서 index 0 의 요소를 삭제하면 O(N)의 시간이 걸린다. 나름 시간 복잡도를 줄이기 위해서 내림차순으로 정렬했다.(ㅠㅠ) ... 알고리즘 문제힙programmersprogrammers 알기쉬운 알고리즘 4주차(1) - 트리 📍 트리 Root Node: 트리 맨 위에 있는 노드 Parent Node: 어떤 노드의 상위 레벨에 연결된 노드 Child Node: 어떤 노드의 하위 레벨에 연결된 노드 이진 트리(Binary Tree)의 특징은 각 노드가 최대 두 개의 자식을 가진다는 것입니다. 완전 이진 트리(Complete Binary Tree)의 특징은 노드를 삽입할 때 최하단 왼쪽 노드부터 차례대로 삽입해야 한다... python힙알고리즘트리python [Algorithm] 우선순위 큐 - 힙 예를 들어, 아래와 같은 이진트리는 높이가 2인 이진트리라고 할 수 있다(0부터 시작한다 했을 때). 이유는 삽입시에는 완전 이진트리의 속성에 맞게 왼쪽부터 차례로 봤을 때 가장 마지막에 빈 부분부터 채워넣는데, 예를 들어, 위의 그림에서는 6의 오른쪽 자식요소로 채워넣게 될 것이다. 그러나, 만약에 채워넣는 수가 2라고 하면, 힙의 특성상 부모요소는 무조건 자식요소보다 작아야하기 때문에 만... 우선순위큐힙heapheap 힙(Heap) = 우선 순위 큐 이진트리(binary tree) : 모든 노드들의 자식 노드가 두개 이하인 트리 완전이진트리(complete binary tree) : 부모, 왼쪽자식, 오른쪽자식 순으로 채워지는 트리 루트에 최대값이 있는 Max Heap과 루트에 최소값이 있는 Min Heap으로 구분됨 Max Heap의 경우 Heap의 각 노드의 값은 해당 노드의 자식 노드가 가진 값보다 커야함 Min Heap의 경우 반... 우선 순위 큐힙priority queueheapheap [프로그래머스] 디스크 컨트롤러 (python 파이썬) 힙프로그래머스프로그래머스 [자료구조] 힙(Heap) 최소 힙(Min Heap)과 최대 힙(Max Heap)이 있습니다. 1. 📌 힙이란? 2. 📌 힙의 구조, 동작 원리 3. 📌 파이썬 heapq 라이브러리 4. 📌 힙 자료구조의 활용 완전 이진 트리의 일종 부모 노드의 키 값이 자식 노드의 키 값보다 항상 큰(작은) 이진 트리 시간복잡도 : 삽입, 삭제 둘 다 O(logN) 보통 리스트(배열)에 저장한다. 구현을 쉽게 하기 위해서 첫 번째 ... python힙자료구조heapheap 더 맵게(python) 나의 풀이 point #1 heap.heapify를 하면 전체 정렬이 되지는 않지막 적어도 리스트의 [0]은 제일 작은 수가 올 수 있게 할 수 있다. point #2 if len(scoville) > 1: 을 if scoville:로 하면 런타임 오류가 난다?... -> 둘다 scoville 안에 요소가 있는 것을 의미하는 것이 아닌가?? 알게된 점 heap의 용법에 대해 자세하게 알게 되... 힙프로그래머스프로그래머스 최단 경로_다익스트라 가장 짧은 경로를 찾는 알고리즘 각 지점은 그래프에서 노드로 표현 특정한 노드에서 출발하여 다른 모든 노드로 가는 최단 경로 계산 다익스트라 알고리즘은 그리디 알고리즘으로 분류 매 상황에서 가장 비용이 적은 노드를 선택해 임의의 과정을 반복 다익스트라 알고리즘 동작 과정 살펴보기 그리디 알고리즘: 매 상황에서 방문하지 않은 가장 비용이 적은 노드를 선택 단계를 거치며 한 번 처리된 노드의 최... 알고리즘다익스트라최대 힙heap우선순위 큐최소 힙힙최단경로heap [파이썬] 더 맵게 문제 출처 : 👩🦰 나의 풀이 힙 scoville의 0번째 인덱스 값이 K보다 작을 동안에만 while문을 실행한다. 힙에서 더이상 pop할 요소가 없을 때 IndexError로 처리되어 -1이 반환된다. scoville의 길이가 2이상일 동안 반복문이 작동한다. 반복문이 끝난 후 return -1을 하는 것은 모든 음식의 스코빌 지수가 K이상이 안 된다는 것이다. 👩🦳 다른 사람 풀이 ... 힙프로그래머스 더 맵게heapheap 프로그래머스 - 단속 카메라 with Java 이런 문제 유형이 코딩 테스트로 자주 출제되는 것 같습니다. 뭔가 공통된 부분에 설치를 한다. 확인을 한다라는 포인트로 문제가 기출이 되면 힙으로 해결하면 됩니다. 자바에서는 우선 순위 큐로 해결이 가능합니다. 알고리즘 동작 순서 모든 차량 운행 정보를 진입 지점 오름차순으로 정렬합니다. 동일한 경우는 진출 지점 오름차순으로 합니다. 운행 정보 하나를 빼옵니다 카메라 개수 한 개 증가 가져온... 단속카메라Java힙프로그래머스Java 코딩테스트 카드 정렬하기 문제풀이 이코테 카드 정렬하기(level 2) 문제풀이 제일 작은 값을 합쳤을때 최적의 해가 되므로 우선순위 큐를 이용하여 제일 작은 값 두개를 합치고 result에 더한 후 힙에 넣는다.... 이코테힙백준정렬백준 백준 1715번: 카드 정렬하기 문제 동적 집합에서 최소값/최대값을 반복적으로 활용할 때 우선순위 큐 활용하기 기록 포인트 동적 집합에서 최소값/최대값을 반복적으로 확인해야 할 때 우선순위 큐를 활용하는 방법 매번 전체 정렬을 할 필요 없이 최소값/최대값만 유지해주기 때문에 더 효율적임 그 대표적인 사례가 이번 문제임 여러 길이의 정렬된 카드 묶음 중 2개를 골라 하나의 묶음으로 합치는 작업을 반복함 이를 효율화하기 위해 ... 힙우선순위 큐우선순위 큐