| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- 그래프 유형
- hash function
- 공 바꾸기 해석
- 공 넣기
- github기본 #github #브랜치 #CLI #CLI입문
- 백준
- 그래프 활용예시
- 해시 테이블 체이닝
- 그래프 무방향성
- 동적 프로그래밍
- 공 넣기 해석
- 코딩
- 그래프 코드 구현
- 너비우선탐색 장단점
- 백준 공 바꾸기
- 해시테이블
- 탐욕 알고리즘
- 백준 풀이
- 백준 10810
- 그래프 양방향
- 깊이우선탐색
- 공 바꾸기
- 그래프란
- 너비우선탐색 python
- 백준 공 넣기
- 깊이우선탐색 python
- 깊이우선탐색 장단점
- 백준 10813
- 그래프 방향성
- 오픈 어드레싱
- Today
- Total
목록2021/12 (4)
Data Scientist(DS)
Dynamic Programming 개념 주어진 문제의 일부를 풀고 그 결과를 재활용하는 방법이다. 하나의 문제를 중복되는 서브 문제로 나누어 푸는 방법. 분할 정복(Divide and Conquer) < 동적 프로그래밍 (Dynamic Programming) 속하는 개념 DP는 중복되는 서브 문제가 있지만(그래서 메모이제이션도 활용 가능) 분할 정복은 분할된 서브문제가 독립적이다. 방법론 메모이제이션 (하향식) 메인 문제를 분할하면서 해결 하는 방법 코드 구현 피보나치 수열을 구하는 방법을 기준으로 비교해보았다. 피보나치 수열: [1,1,2,3,5,8,,,,] 이런식으로 앞의 두개의 항을 더한 수열을 말한다. 첫번쨰와 두번째 항의 경우 1이 들어가는 것이 원칙이다. 메모이제이션은 메인을 분할하고 해결하..
BFS (Breadth First Search) : 너비 우선 탐색 개념 최대한 넓게 탐색하는 것 큐의 개념이 사용된다. 위 이미지를 참조하자면, s - 1 - 2 - 3 - 4 - 5 - 6 - 7 순서로 탐색한다. 활용 최단거리를 구하는 문제 ex) 미로찾기 등 장/단점 장점 무한히 깊은 경로여도 최단 경로를 반드시 찾을 수 있고 최단 경로 찾기에 적합하다. 노드 수가 적고 깊이가 얕을 때 효과적으로 찾을 수 있다. 단점 큐를 이용하기 때문에 노드 수가 많아지면 메모리를 많이 소비한다. 노드 수가 많아지면 탐색할 노드가 많아져 비효율적이다. 코드 구현 # 첫번쨰 방법 def bfs_queue(start_node, bfs_graph): bfs_list = list() queue = list() queu..
개념 정리 1) 그래프 그래프란? 노드와 엣지(간선)으로 이루어진 자료구조. 트리와 다른 점: 계층이 존재하지 않는다. (=루트노드 x) 장점: object간 관계를 표현할 때 유용하다. 예를 들어 SNS나 운송 시스템 같은 경우 적합하다. 그래프 코드 구현 시인접행렬(Adjacency Matrix) 인접리스트 (Adjacency List) 두가지로 구현 가능하다. 인접행렬(Adjacency Matrix) 연결된 여부는 1로 (만약 가중치가 1보다 크면 1보다 큰 값으로) 연결되지 않으면 0으로 표현한다. 메모리 차지가 인접리스트보다 많다. 시간 복잡도 O(n^2) 차지. 노드간 엣지가 존재하는지 찾기 위해서 시간 복잡도가 O(1)으로 인접 리스트보다 좋다. 인접리스트 (Adjacency List) 딕셔..
- 해시테이블은 어떻게 작동될까? 해시 테이블은 key값을 받아 해시함수를 통해 hash key로 바꾼 후, hash key에 해당하는 value값을 넣는다. - 해시함수란? 해시 함수란 key값을 받아 hash key값으로 바꾸어주는 함수를 말한다. - 해시충돌이란 무엇이며 어떻게 처리될까? 해시 충돌이란 해시 테이블에 값을 넣는데 hash key가 중복되어 충돌하는 상황을 말한다. 위 이미지 처럼 John Smith씨와 Sandra Dee씨처럼 말이다. 처리하는 방법으로는 체이닝(chaining)과 오픈 어드레싱(open addressing)이 있다. - 해시테이블이 가득 차면 어떻게 해야할까? 위에서 언급한 해시 충돌을 처리하는 방법인 체이닝과 오픈 어드레싱 방법을 사용하면 된다. 1) 체이닝 * ..