문제
Given an integer n, return a counter function. This counter function initially returns n and then returns 1 more than the previous value every subsequent time it is called (n, n + 1, n + 2, etc).
예제
위 예제의 경우 처음에 -2를 반환하고, 그 뒤론 각각의 호출마다 1씩 증가한 값을 반환한다.
코드
/**
* @param {number} n
* @return {Function} counter
*/
var createCounter = function(n) {
let cnt = n;
return function() {
return cnt++;
};
};
/**
* const counter = createCounter(10)
* counter() // 10
* counter() // 11
* counter() // 12
*/
cnt라는 변수를 n으로 초기화한 후, 클로저를 이용하여 매 호출마다 cnt를 반환한 뒤 1만큼 증가시킨다.
'Algorithm' 카테고리의 다른 글
[LeetCode] 2634. Filter Elements from Array (0) | 2024.01.22 |
---|---|
[LeetCode] 2629. Function Composition (0) | 2024.01.21 |
[LeetCode] 2626. Array Reduce Transformation (0) | 2024.01.21 |
[LeetCode] 2621. Sleep (0) | 2024.01.19 |
[LeetCode] 2619. Array Prototype Last (0) | 2024.01.15 |