- 재귀함수 & Recursion 과제
- 시간 복잡도
어떤 함수가 스스로를 호출하는 함수
잘게 쪼개어 더 작은 문제로 나뉘어 질 수 있는 경우 사용
중첩 루프가 많아서 중첩의 정도를 미리 알 수 없는 경우 사용
모든 재귀함수는 재귀 호출 없이 while / for loop로 표현이 가능하다
팩토리얼 함수
재귀적 사고
활용
재귀 함수와 메모리 사용량 간의 관계 (javascript recursion memory leak)
하노이의 탑과 조합(combination) 문제
꼬리 재귀 (tail recursion in js)
조합 재귀함수 (js combinaton in recursion)
시간 복잡도
빠른 알고리즘, 느린 알고리즘 와 같이 알고리즘에 대한 분석.
모바일 디바이스에 대한 제약.
머신러닝과 같은 많은 컴퓨터 자원을 필요로 하는 작업을 할 때 시간 복잡도를 고려하면 자원 활용도를 높일 수 있다.
문제 n개가 늘어날 수록 소요 시간의 증가율.
효율적 알고리즘에 대한 접근방법
복잡도 타입
@@ 오늘은 underbar에 이어서 recursion 과제를 진행했다. underbar 여파인지, 뇌정지(?)가 자주 와서 버벅 버벅, 너무 어렵게 느껴졌다. 재귀함수가 낯설기도 하고 항상 독학 할때도 고차함수, 재귀 이 파트 전에 멈췄어서 그런지 더 무겁게 다가왔다.
페어 프로그래밍 하며 페어분 도움 받아 어찌저찌 1문제 클리어 하고, 저녁 개인시간 때 다시 봤다. AMA 덕에 힌트를 많이 얻어서 초기화 하고 다시 접근하니, 어려워서 콘솔만 몇 십번 찍었던 문제가 홀연히 통과됐다. (어안이 벙벙...)
기분 좋긴 한데, 오늘 DOM 파트부터 연습 부족, 개념 숙지 부족이라는 경고등이 떴다. 내일이면 pre 과정 마지막 날인데, 긴장 늦추지 말고 복습 또 복습에 매진해야겠다.