File tree Expand file tree Collapse file tree 1 file changed +24
-0
lines changed
minjeong/DynamicProgramming Expand file tree Collapse file tree 1 file changed +24
-0
lines changed Original file line number Diff line number Diff line change 1+ D = int (input ()) # 산책할 총 시간 D분
2+ dp = [0 ] * 8 # 건물 8개에 대해 경로 수를 저장할 배열 초기화
3+ dp [0 ] = 1 # 정보과학관(0번 건물)에서 출발하므로 초기값은 1
4+
5+ # D분 동안 경로 수를 계산
6+ for i in range (D ):
7+ tmp = [0 ] * 8 # 이번 시간의 경로 수를 임시 저장할 배열
8+
9+ # 각 건물에 대해 이전 시간에 가능한 경로 수를 누적
10+ tmp [0 ] = dp [1 ] + dp [2 ] # 정보과학관으로 가는 경로
11+ tmp [1 ] = dp [0 ] + dp [2 ] + dp [3 ] # 전산관으로 가는 경로
12+ tmp [2 ] = dp [0 ] + dp [1 ] + dp [3 ] + dp [4 ] # 미래관으로 가는 경로
13+ tmp [3 ] = dp [1 ] + dp [2 ] + dp [4 ] + dp [5 ] # 신앙관으로 가는 경로
14+ tmp [4 ] = dp [2 ] + dp [3 ] + dp [5 ] + dp [6 ] # 한경직기념관으로 가는 경로
15+ tmp [5 ] = dp [3 ] + dp [4 ] + dp [7 ] # 형남공학관으로 가는 경로
16+ tmp [6 ] = dp [4 ] + dp [7 ] # 진리관으로 가는 경로
17+ tmp [7 ] = dp [5 ] + dp [6 ] # 학생회관으로 가는 경로
18+
19+ # tmp에 저장된 값을 dp로 옮기며, 큰 수를 방지하기 위해 모듈러 연산
20+ for i in range (8 ):
21+ dp [i ] = tmp [i ] % 1000000007
22+
23+ # D분 후에 다시 정보과학관(0번 건물)에 도착하는 경우의 수 출력
24+ print (dp [0 ])
You can’t perform that action at this time.
0 commit comments