[LeetCode] 2666. Allow One Function Call

Chobby·2024년 6월 27일
1

LeetCode

목록 보기
10/194

😎풀이

지문이 굉장히 복잡하고 별로다.

매우 간략하게 설명하자면 최종적으로 반환해야 하는 값은 그저 fn 함수에 매개변수 args를 모두 할당하면 끝이다.

다만, 한번만 호출 가능하고 그 이후는 아무것도 반환하지 않는 상태로 만들어야함

type JSONValue = null | boolean | number | string | JSONValue[] | { [key: string]: JSONValue };
type OnceFn = (...args: JSONValue[]) => JSONValue | undefined

function once(fn: Function): OnceFn {
    let isCalled = false
    return function (...args) {
        if(isCalled) return undefined
        isCalled = true
        return fn(...args)
    };
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글