스프린트/im-sprint-underbar

im-sprint-underbar_nightmare(나중)

테오구 2021. 11. 3. 16:55
728x90

memoize

더보기

// _.memoize는 callback 함수에 메모이제이션(memoization)을 적용합니다.

// 메모이제이션은 이미 해결한 문제는 다시 풀지 않는 기법입니다.

// 함수의 호출은 항상 어떤 상태로부터 시작합니다.

// 함수의 호출과 함께 전달받은 인자들 또는 함수의 실행에 영향을 미치는 전역변수들이 이 상태를 결정합니다.

// 같은 상태에서 출발한 함수는 항상 같은 결과를 리턴(해야)합니다.

 

// 예를 들어, 아래의 함수 add는 두 인자의 값이 바로 함수의 상태입니다.

// function add(a, b) {

// return a + b;

// }

// add(3, 5)는 항상 8을 리턴하고, add(2, 7)은 항상 9를 리턴합니다.

// 함수의 상태마다 하나의 문제가 있는 셈입니다.

// 문제를 해결할 때 마다 해당 문제의 답을 기록(메모)해두고,

// 다음에 동일한 문제를 풀 상황이 오면, 앞서 기록한 답을 활용합니다.

// 이 경우, 처음 문제를 풀 때 들였던 노력(연산)이 필요 없습니다.

// 예시로 보여준 add 함수의 경우, 연산이 많이 복잡하지 않아 메모이제이션의 이점이 와닿지 않을 수 있습니다.

// _.memoize를 완성한 후에 피보나치 함수에 적용하여 비교해 보시기 바랍니다.

// 단, 재귀 함수는 함수가 할당된 변수에 메모이제이션이 적용된 함수를 재할당해야 합니다.(테스트 케이스 참고)

_.memoize = function (func) {

// TODO: 여기에 코드를 작성합니다.

};

throttle

더보기

// _.throttle은 입력으로 전달되는 시간(ms, 밀리초)동안에 callback 함수를 단 한번만 실행되는 함수를 반환합니다.

// 리턴되는 함수는 구간의 길이가 입력의 크기인 임의의 구간에서 callback 함수를 한 번만 실행되어야 합니다.

// 예를 들어, _.throttle(func, 100)가 리턴하는 함수는 적어도 100ms 간격을 사이에 두고 callback 함수를 실행해야 합니다.

_.throttle = function (func, wait) {

// TODO: 여기에 코드를 작성합니다.

};

728x90

'스프린트 > im-sprint-underbar' 카테고리의 다른 글

im-sprint-underbar_advanced(나중)  (0) 2021.11.03
im-sprint-underbar_bareMinimum  (0) 2021.11.03