helios789789   3년 전

dp 로 해결할 수 있습니다.

num 명이 완벽하게 악수하는 경우의 수는

2명이 서로 악수하고, 나머지 num-2 명이 악수하는 경우
4명이 서로 악수하고, 나머지 num-4 명이 악수하는 경우
6명이 서로 악수하고, 나머지 num-6 명이 악수하는 경우
... 를 전부 더한 것

으로 분리할 수 있으며 각각의 부분을 계산하는 과정에서 겹치는 상태가 발생하므로 이를 메모이제이션 해줍니다.

cache[num] //num 명이 완벽하게 악수하는 경우의 수 로 메모이제이션 해줍니다.

덧셈 과정에서 오버플로우가 발생할 수 있으므로 long long 으로 해결해줍시다.

댓글을 작성하려면 로그인해야 합니다.