[TIL] DAY10_JS_1. VIM의 기초, 2. 알고리즘의 기초
- 1 minSummary:
DAY10
2017/10/27
TIL
#1. Vim의 기초
1. History
- 천재 개발자 Bill Joy가 Vi를 만들었고, Vim으로 발전됐다.
- Vim(Vi improved)
2. 일반모드(esc)
- 커서이동 hjkl
- 삭제 x 또는 X
- 이동: e, w, b, $, ^, gg, G
- 삭제: dd, dw, 3dw, 5dd
- 입력모드로: i, I, o, O, a, A
- 복사: yy
- 붙여넣기: p
3. 명령보드(:)
- :w 저장
- :q 종료
- :q! 저장 안하고 종료
- :wq! 저장하고 종료
4. Vim의 기초
- vimtutor ko 입력 후, 커리큘럼 활용
#2. 알고리즘의 기초 (그냥 다외워야되는 것임!)
1. 알고리즘이란?(알고리즘 공부)
- 문제해결을 위함.
- 수학을 기본으로함 : 이산수학* 칸아카데미로 공부하면 좋다!
2. 복잡도(Complexity) 분석
- Big O(최악의 시간), Big Theta(평균시간), Big Omega(최고 빠른 시간) 표기법에 대한 이해
- 성능분석을 위해 사용
-
공간복잡도와 시간복잡도로 구성된다.
2-1. Big-O natation(빅오 표기법)
- 의미 : 인풋의 크기가 충분히 커진 상태의 성능. 즉, 최악의 성능을 의미한다
- Ex) 최대값 찾기 : O(n), i번째 원소 읽기 : O(1), 배열의 i번째 임의의 값 넣고 나머지 뒤로밀기 : O(n), 정렬 : O(n^2) or O(nlogn)
3. 프로그래밍 언어
- 재귀호출
- 함수 사용법
- 메모리 구조의 이해 * 특히 스택
- 객체, 배열, 참조, 포인터, 메모리 할당에 대한 이해
4. 기본 자료구조 (배열, 리스트가 가장 중요(90%)!)
- 배열, 리스트, 스택(last-in,Fisrt-out), 큐(First-in,First-out), 트리, 그래프, 해시(key를 기반으로 값을 찾아내는 것)
5. 정렬
- 선택정렬, 버블정렬, 삽입정렬 : 느린 정렬
- 쉘 정렬, 퀵 정렬(가장 많이 나온다.), 기수정렬, 힙 정렬, 병합정렬, 외부정렬 : 빠른 정렬
6. 트리와 검색
- 순차검색, 2진검색(배열), BST검색(트리), AVL트리, 레드블랙트리(중요), MST, B-TREE
7. 그래프와 탐색
- 전위/중위/후위, 다익스트라 최단거리, 플로이드 알고리즘, A*알고리즘
8. 알고리즘 전략
- 휴리스틱 알고리즘, 그리디 알고리즘, 몬테카를로 알고리즘, 분할 정복, 다이나믹 프로그램(중요), 백트랙킹
9. 이 다음에는 코딩문제를 풀어봅니다.
- 위 내용을 다 알고 알고리즘문제를 풀어야 한다.
- 백준 알고리즘
- 해커링크
- leetcode
- topcoder
10. 공부할 책!
- 누워서 읽는 알고리즘
- 취업필독서 코딩인터뷰 완전분석
- 그림으로 배우는 알고리즘
- 사이트! 인프런 알고리즘!