멋쟁이사자처럼 프론트엔드스쿨 w/ 제주코딩베이스캠프 33일차
오전(09:00~11:50) 수업 w/ Licat
morning break
- 면접 질문들에 관하여
→ 각자가 면접 때 받은 질문들에 대해서 모아서 보면 좋지 않을까 - 구체적인 숫자들로 자신을 어필하라
ex) 하루에 1000줄 이상 쓰는 개발자, 1일 1커밋 - 열정보다는 시스템
- 진흙 속에 진주 같은 우리들!!
수업
- 어제 fullData에 관한 설명
- 하나의 언어만 하지 않을 확률이 굉장히 높다
정렬
- 선택정렬 → array에서 min을 찾아서 새로운 array에 넣어주기 원래 array에서 for문 돈다
- 삽입정렬 → 기존 array에서 순차적으로 값을 꺼내서 새로운 array에 있는 값들을 for문 돌아 비교하고 삽입한다
병합정렬(Merge Sort)
- 여기부터 정렬 핵심
divide and conquer 분할 정복 다른 알고리즘에서도 사용한다. - 2개씩 합치는 과정에서 한쪽이 비어있으면 다른 합칠 것은 당연히 정렬되어 있기 때문에 경우의 수가 확 준다 merge sort는 그래서 worst case에도 좋은 perfomance를 보장을 해준다.
- 플젝과 알고리즘의 우선순위?
→ 당연히 플젝 - 유행을 타지 않는 지식
퀵정렬(Quick Sort)
- Worst, Best가 다르다.
- 실무에서 쓸 일? → 없을 확률 높다
- pivot을 어떻게 잡는지는 상황마다 다르다.
- 최악을 고려하면 pivot을 2개 잡기도 한다.
- 값이 하나로 될 때까지 재귀로 호출
- pivot값을 잡아서 하는 문제가 있다? Quick Sort 복붙해서 쓰는 것
- 우리의 목표는 코테 통과
- 좋은 프로그래머가 되려면 알고리즘을 결국 한 번 해야하긴 한다.
- 코테볼 때는 sort method 쓰고 sort 쓸 수 없는 문제가 나온다면 merge 등을 구현해야지
- 우리 코테의 목표는 절반!!
- 집요하게 끝까지 물고 늘어져보자...!!
오후(13:00~18:00) 수업 w/ Licat
수업
- 대표님도 알고리즘 짤 때 과거 찍었던 강의를 보면서 복기하신다고..ㅋㅋ
즉, 정리해놓을 때 잘 정리해두고 과거의 내가 학습한 기록을 따라가자 - 당장 이해가 안된다면 얻어가야할 것
- 병합정렬이라는 것이 있다.
- 병합정렬의 원리
- 분할과 정복
- 이렇게 어려운 경우 똑같은 코드를 메모장에 복사를 20개 정도 해서 아주 큰 배열을 큰 종이에다가 써가면서 이해를 해보기
- 병합정렬 구현 문제가 코테 5문제 있다면 4~5번 정도의 문제
function mergeSort(arr) {
let arrLength = arr.length;
let arrReturn = [];
if (arr.length <= 1) {
return arr;
}
let median = parseInt(arrLength / 2);
let groupOne = mergeSort(arr.slice(0, median);
let groupTwo = mergeSort(arr.slice(median));
- 계속 얘기하지만 코테는 기준을 넘는 것이 목표!!
- 교육비용이 너무 큰 알고리즘 등은 어느정도 Cut하면서 가는 게 좋다.
퀵정렬(Quick Sort)
- pivot - 기준
- 알고리즘만 코딩의 전부라고 생각하지 말자
- 코테 안보는 회사 들어가서 코테 준비한 다음에 이직하기를 권고한다!!
- concat 같은거 쓸 때만 봐도 JavaScript 뭔가 안예쁘다..ㅋㅋ
- Quick Sort나 Merge Sort를 사용해야하는 경우 Code Snippet에서 복붙해서 수정해가면서 쓰는 것!
- 라인 인턴 면접 때도 화이트 보드에 Quick이나 Merge 같은거 손코딩으로 구현해보라고 했었다는 지인이..!
페이지 교체 알고리즘
- 누구를 빼낼 거냐
- LRU가 제일 많이 나온다고
- 면접 질문으로 정렬에 대해 물어본다면 어떻게 답변할 것인가?
→ 머지소트란 분할 정복 알고리즘의 하나로써, 하나의 배열 등을 1개 이하의 원소가 남을 때까지 분할한 후 분할한 것들을 새로운 배열에 작은 것부터 넣어주면서 합치는 과정을 통해 정렬을 해주는 방식입니다. - 캐시의 크기를 의자처럼 생각
["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "Seoul", "LA"]
["Jeju"] 1회차
["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "Seoul", "LA"]
["Jeju", "Pangyo"] 2회차
["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "Seoul", "LA"]
["Jeju", "Pangyo", "Seoul"] 3회차
["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "Seoul", "LA"]
["Pangyo", "Seoul", "NewYork"] 4회차
["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "Seoul", "LA"]
["Seoul", "NewYork", "LA"] 5회차
["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "Seoul", "LA"]
["NewYork", "LA", "Seoul"] 6회차
["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "Seoul", "LA"]
["NewYork", "Seoul", "LA"] 7회차
hit - 1
miss - 5
트리
- 포화이진트리, 완전이진트리
- 포화이진트리는 완전이진트리의 일부
- 전위순회, 중위순회, 후위순회
- BFS, DFS
- DFS는 Stack을 이용
current에 있던 node가 방문 경로에 담기는 순간 자식 node들이 stack에 담긴다 - BFS는 Queue를 이용
current에 있던 node가 방문 경로에 담기는 순간 자식 node들이 queue에 담긴다
막간 NHN 컨퍼런스 추천https://www.youtube.com/watch?v=HoqMPUkzMSA&list=PL42XJKPNDepZC5HXlqxzTTJ_Ai_KDcXRa&index=12
'기록 > 멋쟁이사자처럼 FE 스쿨' 카테고리의 다른 글
[멋사 FE 스쿨] 35일차 리뷰 (0) | 2021.12.20 |
---|---|
[멋사 FE 스쿨] 34일차 리뷰 (0) | 2021.12.16 |
[멋사 FE 스쿨] 32일차 리뷰 (0) | 2021.12.14 |
[멋사 FE 스쿨] 31일차 리뷰 (0) | 2021.12.13 |
[멋사 FE 스쿨] 30일차 리뷰 (0) | 2021.12.10 |
댓글