BOJ에서는 numpy를 사용할수 없어서, 아래와 같이 2차원 리스트를 생성하였다
아래는 코드.
recursion과 dynamic programming을 사용하였다
recursion depth는 n이 될 것이다
그림으로 표현하면 tree처럼 표현할 수 있다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #import numpy as np #save = np.zeros((30, 30), np.uint32) MAX = 30 save = [[0]*MAX for i in range(MAX)] def bridge_cnt(n, m): if save[n][m] != 0: return save[n][m] for i in range(n-1, m): # n-1 ~ m-1 save[n][m] += bridge_cnt(n-1, i) return save[n][m] def main(): for i in range(1, 30): save[1][i] = i T = int(input()) for i in range(T): N, M = tuple(int(i) for i in input().split()) print(bridge_cnt(N, M)) main() | cs |
언어는 python3가 아닌 pypy3를 선택했다
'Algorithm' 카테고리의 다른 글
[algorithm] 백준 알고리즘 1753번 문제 정답코드 (0) | 2017.12.16 |
---|---|
[algorithm] 그래프 기초 (0) | 2017.12.14 |
[algorithm] 다익스트라 알고리즘 (Dijkstra, 그래프) (0) | 2017.12.14 |
[algorithm] quick sort code example (0) | 2017.12.13 |
[algorithm] MST(최소신장트리), Prim 알고리즘 (0) | 2017.12.10 |
WRITTEN BY
- hojongs
블로그 옮겼습니다 https://hojongs.github.io/