SWEA 문제 모음: https://swexpertacademy.com/main/code/problem/problemList.do
DP 테이블을 만들고, 비트 연산자를 이용해서 주어진 케이스에 어떤 사람들이 들어가 있는지 체크하면서 경우의 수를 더해가는 방식으로 풀었다.
"어떤 사람이 활동을 하는지 안 하는지에 따라 경우의 수를 세어야 한다"라는 말에 맞춰 특정 날짜의 특정 케이스의 경우의 수는 <관리자가 있는지, 전 날 케이스의 참석 인원이 오늘 참석하는지 조건>을 만족하는 모든 케이스 수의 합이 된다.(Line 17) 열쇠는 아무나 가지고 있어도 상관 없으니 전 날 케이스에서 적어도 1명 이상 오늘 케이스에 참여하면 될 것이다.
1일차의 경우 A가 무조건 열쇠를 가지고 있으니 이를 고려하여 dp 테이블의 첫 날짜를 채우면 된다.