문제
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).
https://leetcode.com/problems/counter/
예시
n이 10일 때, 처음 counter() 메소드를 호출하면 10이 나오고, 또 counter() 메소드를 호출하면 11이 나오고, 또 counter() 메소드를 호출하면 12가 출력된다.
n이 -2일 때 counter()를 5번 호출하면 -2, -1, 0, 1, 2가 출력된다.
코드
function createCounter(n: number): () => number {
return function() {
return n++;
}
}
/**
* const counter = createCounter(10)
* counter() // 10
* counter() // 11
* counter() // 12
*/
createCounter의 인수로 n이 들어오고, createCounter는 함수를 리턴한다. 리턴된 함수가 counter 변수에 담긴다.
counter 함수가 호출될 때마다 n을 증가시켜야 하므로, n을 증가시키는 코드가 필요하다. 처음 호출될 때는 n이 출력되어야 하므로, n++로 후위 증감 연산자를 이용한다.
728x90
'Algorithm > leetcode' 카테고리의 다른 글
[leetcode][JS] 2629. Function Composition (0) | 2024.01.22 |
---|---|
[leetcode][JS] 2626. Array Reduce Transformation (0) | 2024.01.18 |
[leetcode][JS] 2621. Sleep (0) | 2024.01.17 |
[leetcode][JS] 2619. Array Prototype Last (0) | 2024.01.15 |
[leetcode][JS] 1768. Merge Strings Alternately (0) | 2023.04.20 |