본문 바로가기

해삐챠의 알고리즘 공부

(6)
(? 그냥 글 .. 알고리즘 공부도개발일지도 왔다휴식기가오면 안 되는 시기에!
6. 최소힙 최대힙 - 중간값 구하기import java.util.Collections;import java.util.PriorityQueue;import java.util.Scanner;class Solution{ public static void main(String args[]) throws Exception { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for (int i=1; i minHeap = new PriorityQueue(Collections.reverseOrder()); PriorityQueue maxHeap = new PriorityQueue(); PriorityQueue temp = new PriorityQueue();..
4. 그래프/tree 관계- 일방적인 관계?- 가중치 희소하다 sparse- 인접행렬에서.. 100억개의 칸- 간선이 10만개- 10만개만 1이고 나머지는 0- 대부분이 0 해시맵 - 희소한 경우에는 해시맵이나, 트리맵을 쓰는 게 맞음- 인덱싱이 되면 그냥 인접리스트 쓰면 되는데,- 인덱싱이 안 되는 경우에는 해시맵을 쓰면 됨DFS/BFSBFS- 가중치가 없는 그래프에서 시작노드에서 나머지 모든 노드까지 최단거리를 구할 때 사용- 1>5나, 1>2, 3, 4, 5 구하는 것이나 시간 복잡도는 똑같음 Tree트리- 두 정점을 잇는 단순 경로가 유일한 그래프- 트리가 여러 개 있다면 -> 포레스트, (사이클이 없는 무방향 그래프) 조건?- 모두 같은 연결 요소- 사이클이 없음- 노드 수 == 간선 수  + 1rooted tree..
3. 병사관리 - 병사관리..내일 문제 풀려면 미리 풀어놔야 하는데집에 오느라 에너지를 너무 다 써버렸다..내일 아침에 일찍 일어나서 해야지 ! ! 이진 탐색https://www.codetree.ai/missions/8/problems/find-number-fast?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.aiimport java.util.Scanner;public class Main { static int n, target, idx, left, right; static int[] nums..
2. 연결리스트 데이터가 자료의 주소 값으로 서로 연결되어있는 구조Array vs. Linked List ArrayLinked List장점무작위 접근 가능빠른 자료의 삽입과 삭제자유로운 크기 조절단점느린 자료 삽입 & 삭제크기 조절 불가능순차 접근만 가능메모리 추가 할당정적 할당을 사용하여 연결 리스트 구현: 메모리 풀을 통해 정적 할당하기!메모리 풀의 장점!1. 동적 할당을 하는 오버헤드가 없어짐2. 사용이 끝날 때마다 메모리 해제할 필요 없음3. 모든 노드가 메모리 상에서 뭉쳐 있어서 캐시 효율이 높아짐(미리 사용될 노트를 할 번에 모두 할당한 다음, 필요할 때마다 하나씩 꺼내 쓰는 방식)구현 연습 - 이중연결리스트https://www.codetree.ai/missions/8/problems/linked-list1?..
1. 비트마스킹 각 비트를 하나의 flag로 활용하기-> 자료 저장 및 집합 표현 용이 생각해보기1사람 -> 0 ~ 31 사이의 번호가 매겨져 있고, 사람 A의 친구 목록과 B의 친구 목록이 있을 때.1. A, B 모두와 친구인 사람은? A & B2. A 또는 B 와 친구인 사람은? A | B 친구 목록을 사람 번호로 저장하지 않고, x번째 사람이 내 친구라면,x번째 비트를 1로 표시하는 방식으로 생각하기생각해보기2가장 큰 수임을 판단하는 방법?예시로, 해당 수 == (1 : 2의 32제곱 -1 실습1새로운 불면증 치료법package review;import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner..