문제

Given a positive integer millis, write an asynchronous function that sleeps for millis milliseconds. It can resolve any value.

 

예제

100ms 후 resolve되는 promise 객체를 반환해야 한다.

위 예제의 경우 200ms 후에 resolve되는 promise를 반환해야 한다.

 

 

코드

/**
 * @param {number} millis
 * @return {Promise}
 */
async function sleep(millis) {
    return new Promise((resolve => setTimeout(resolve, millis)))
}

/** 
 * let t = Date.now()
 * sleep(100).then(() => console.log(Date.now() - t)) // 100
 */

sleep 함수 실행 시 Promise 객체를 반환하는데, 해당 객체는 setTimeout 함수를 이용하여 millis 밀리초 후 resolve된다. Promise 객체에 대해 더 공부해보아야겠다..!

문제

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).

 

예제

처음 counter() 함수를 호출하게 되면 n을 반환한다. 이후부터는 이전에 반환했던 값보다 1만큼 큰 값을 반환한다.

 

위 예제의 경우 처음에 -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만큼 증가시킨다.

문제

Write code that enhances all arrays such that you can call the array.last() method on any array and it will return the last element. If there are no elements in the array, it should return -1.

You may assume the array is the output of JSON.parse.

 

예제

nums.last() 호출 시 마지막 원소인 3을 반환해야 한다.

 

배열 내에 원소가 없을 경우, -1를 반환한다.

 

 

코드

/**
 * @return {null|boolean|number|string|Array|Object}
 */

Array.prototype.last = function() {
    if (this.length === 0) {
        return -1;
    }
    
    return this[this.length - 1];
};

/**
 * const arr = [1, 2, 3];
 * arr.last(); // 3
 */

현재 배열의 길이가 0인 경우, 즉 배열 내에 원소가 없는 경우 -1을 반환한다. 그렇지 않다면 length 메소드를 이용하여 배열의 마지막 원소를 반환한다.

'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] 2620. Counter  (0) 2024.01.19

+ Recent posts