모든 경우의 수를 탐색하는 알고리즘
! 재귀는 사용하지말자- js에서 재귀는 효울이 안좋다 왜지?
dfs를 구현할 경우 재귀로
하지만 순환이 발생하면 bfs로
❗ 백트래킹의 핵심은핵심은 가지치기
백트래킹 작성 팁
동적계획법은 dp즉 다이나믹프로그래밍 이라고도 불린다
왜 다이나믹인가? 그냥 알고리즘 만든사람이 멋있어서 지었다고 한다.
map - 이터러블한 값을 순회 하면서 각 요소에 대해서
map에게 인자로 넘겨준 함수를 실행해준다.
filter -이터러블한 값을 순회 하면서 특정 조건에 만족하는
값만 뽑아서 리턴한다
reduce- 이터러블한 값을 순회하면서 값을 더하거나 등등 전달된 보조함수를 사용하여서 값을 축약한다.
go- 값과 함수를 축약해서 결과를 보여주는 함수다.
const go = (...func) => {
return reduce((a, f) => f(a), func);
};
go(
0,
(a) => a + 1,
(a) => a + 10,
console.log
);
pipe- 여러개의 함수를 축약해서 하나의 함수로 만들어주는 함수
const pipe =(...func) =>(a) =>go(a, ...func);
위의 코드로 만들수있다.
저게 아마 커링와 클로져 개념으로 가능한것 같다.
신기..
함수형을 어떻게 활용할지 생각해보자
n퀸문제
https://programmers.co.kr/learn/courses/30/lessons/12952
단어퍼즐
https://programmers.co.kr/learn/courses/30/lessons/12983