JavaScript - 문제 미리보기
문제 559
hard
다음 중 Fisher-Yates 셔플 알고리즘의 핵심 아이디어는 무엇인가요?
```javascript
for (let i = arr.length - 1; i > 0; i--) {
let j = Math.floor(Math.random() * (i + 1));
// 요소 교환
[arr[i], arr[j]] = [arr[j], arr[i]];
}
```
정답: B
Fisher-Yates 알고리즘은 배열을 뒤에서부터 순회하면서 각 요소를 그보다 앞에 있는(자기 자신 포함) 임의의 요소와 교환합니다. 이 방법은 `Math.random()`을 사용한 단순한 셔플보다 훨씬 균등한 분포를 보장합니다.
💡 학습 팁
이 문제를 포함한 JavaScript 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.