😎풀이

  1. 원본 배열은 수정하지 않으므로, reset요청 시 원본 배열 그대로 반환
  2. shuffle이 요청될 경우, 원본 배열을 복사하여 인덱스마다 랜덤한 인덱스와 교환하여 반환
class Solution {
    private origin: number[]
    constructor(nums: number[]) {
        this.origin = nums
    }

    reset(): number[] {
        return this.origin
    }

    shuffle(): number[] {
        const shuffled = [...this.origin]
        const len = shuffled.length
        for(let i = 0; i < len; i++) {
            const j = Math.floor(Math.random() * len);
            [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]];
        }
        return shuffled
    }
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글