일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
- UNICON
- 설계
- 온라인테스트
- 인디게임
- CICD
- 자바개발자
- 위키북스
- 전국대학생게임개발동아리연합회
- Developer
- 스프링부트
- 라피신
- UNICON2023
- 배포
- 프로그래밍
- 도커
- RDS
- 인프라
- 체크인미팅
- 42서울
- 프리티어
- AWS
- EC2
- 스프링
- 개발공부
- 게임개발동아리
- 백엔드
- 자바
- 백엔드개발자
- UNIDEV
- 생활코딩
- Today
- Total
목록2024/06/20 (5)
Hyun's Wonderwall
Minimum Spanning Tree- 무방향 연결 가중치 그래프. n개의 모든 정점 n-1개의 간선으로 연결.- MST는 유일하지 x 전체 트리의 가중치합.. GENERIC-MST -> A는 매 반복에서 선택된 안전간선들의 집합.A에 대해 safe edge (u,v)를 찾아서 A에 합한다. 그것을 A 가 최소신장트리 되기 전까지 반복GENERIC-MST(G,w) A 크루스칼(Kruskal) 알고리즘- forest를 이룸.- 가중치값 최소 간선 선택함. (cycle 생기지 않게)프림(Prim) 알고리즘- single tree가 계속 확장됨. (시작정점o)- 트리에 있지 않은 정점을 트리에 연결시키는 가중치값 최소 간선 선택함. Kruskal 알고리즘의 실행- 간선이 잇는 정점 이미 같은 집합 안에 있..
그래프 G = (V,E)- 정점 V, 간선 E.- 무방향, 방향 그래프- 차수: 인접 간선의 개수 (방향: in-degree, out-degree / 무방향: degree)- weighted graph 가중치 그래프- connected graph 연결 그래프. strongly connected 강연결 그래프.- 희소 sparse, 밀집 dense - 스택, 큐 그래프로 표현 가능 인접행렬 Adj[i][j]. Θ(V^2) 공간 필요인접리스트 Adj[v] = {1, 2}. Θ(V+E) 공간 필요. 시간복잡도 O(n)- 인접리스트 무방향이면 값 2번 있어야. 가중치그래프는 노드 (key,value) 로 구성.- |adj[v]| = out-degree 갯수 (각 정점의 외차수의 개수만큼 인접노드.)- 삭제랑 탐..
Huffman Codes 허프만 압축 (허프만 코드)- Binary character code. 각 문자는 고유 이진 문자열로 표현됨.* Fixed-length code: 고정길이 방식 (6개 문자 나타내는데 3bit 필요.)* Variable-length code: 가변길이 방식 (등장 빈도수 고려해 codeword 부여 가능. 자주등장-짧은 codeword. 굿) Prefix Codes: 어떤 codeword도 다른 codeword의 접두사가 아님- 인코딩과 디코딩에 용이. 각 문자를 나타내는 코드워드를 차례대로 concat하고 쪼개면 됨. (인코딩) "abc" -> 0.101.100 = 0101100 | (디코딩) 001011101 = 0.0.101.1101 -> "aabe"- 문자는 이진트리의 ..
Greedy Algorithms 그리디 알고리즘: 각 단계에서 최적의 수를 찾아 전역 최적해를 구함.- ex) 수업 시간표 짜기: (1) 젤 빨리 끝나는 과목 먼저 신청 (2) 첫번째 과목 끝난후 시작해서 젤 빨리 끝나는 과목 신청- 그리디 알고리즘은 지역 최적해로 전역 최적해를 구하는 방식. DP로 얻은 최적해보다 덜 최적일 수 있음. Activity Selection Problem 행동 선택 문제- 입력: n개의 행동이 담긴 집합 S = {1,2,..n}. 시작 시간 si, 종료 시간 fi라 할때 행동 i는 [si,fi)를 차지함.- 목표: 호환가능한. 안겹치는 행동들로 최대 개수의 행동을 하기. (시간을 얼마나 쓰는진 고려대상x)S = { [1,4), [5,7), [2,8), [3,11), [8,1..
12.1동적 프로그래밍(DP): 격자(배열) 만들어 사용- 분할정복 DAC와의 비교: 문제를 부분 문제로 나누어 해결하는 것이 비슷.- DAC는 하위 문제들이 서로 독립적, DP는 서로 연관.- 하위 문제들이 겹침 -> DAC는 중복 계산하지만 DP는 table에 저장하는것으로 단 1번만 계산. DP 알고리즘 수립1. 최적해의 구조 특징을 찾는다.2. 최적해의 값을 재귀적으로 정의한다.3. 최적해의 값을 상향식(bottom-up)으로 정의한다.4. 계산된 정보들로부터 최적해를 구성한다. DP 알고리즘의 구성요소1. Optimal sub-structures 최적의 하위구조2. Overlapping sub-problems 겹치는 부분문제3. Memoization and reuse 메모이제이션과 재사용 Opt..