하노이의 탑
11729번: 하노이 탑 이동 순서 (acmicpc.net) def hanoi(n, frm, to, aux) -> int: if n == 1: print(f'{frm} {to}') return 1 hanoi(n - 1, frm, aux, to) print(f'{frm} {to}') hanoi(n - 1, aux, to, frm) K = int(input()) # K = 20 print(2 ** K - 1) hanoi(K, 1, 3, 2) 재귀는 큰 문제를 분할해서 처리하는 특성 상 작은 문제를 해결하면 큰 문제도 해결된다. 수학적 귀납법처럼 k = 1, 2인 경우만 해결하면 자동으로 처리가 된다. 그를 위해서는 움직이는 방법을 재연할 수 있어야 한다. 일단 k = 1인 경우를 보자. 간단히 from ->..
2021. 8. 4.
Game Server Performance on Tom Clancy's The Division 2
https://www.youtube.com/watch?v=bcXxyKqgV0c 주제: 서버에서 대규모 사용자 유지하기 코드 아키텍처 퍼포먼스 문제 디버깅, 모니터링위한 툴 프로세스 케이스 스터디 소개 3차원 클라이언트, 서버, 권한 서버 1000명 이상 수용, 20000 NPC 20fps이며, PVP만 30fps로 처리 플레이어가 존에 도달할 때만 로딩 처리 다크존: 플레이어가 집결할 것으로 예상되는 지점 서버 역할 월드 업데이트: AI, 플레이어, 미션, 스킬 싱글 스레드 천개 이상의 월드가 존재 병렬화 작업 짧은 작업: 높은 순위, 월드 업데이트 긴 작업: 저장, 백그라운드 데이터 업데이트 월드는 플레이어가 있을 때만 존재 최대한 병렬화 처리 40 코어 36: 짧은 작업 위해 할당 2: 긴 작업 위해..
2021. 4. 20.