살면서 처음보는...
요세푸스 순열, 요세푸스 문제라는 건데.
요세푸스문제
생각보다 이해가 너무 안돼서 3일은 생각한것같다...
일단 푸는방법은
- Queue를 이용하는 방법
- Circular Linked List를 이용하는 방법
- Recurrence Relation(점화식)을 이용하는 방법
내가 푼 방법은
function josephusSurvivor(n, k) {
var member = [],
p = 0;
for (var i = 0; i < n; i++) {
member.push(i + 1);
}
while (member.length > 1) {
p = (p + k - 1) % member.length;
member.splice(p, 1);
}
return member.pop();
}
console.log(josephusSurvivor(7,3));
꽤 어려웠던 문제인만큼.. 혼자 풀지 못했다. 그중에서 도움됐던 영상을 공유하자면
주니온TV 아무거나연구소 다.
엄청 쉽게 설명 해주고 , 이해가 안가더라도 여러번 반복해서 보니까 이해가 됐다. 이번기회에 키보드에 손부터 가는습관이 진짜 안좋다는걸 다시금 느꼈다.