728x90
문제출처: https://www.acmicpc.net/problem/1890
1890번: 점프
첫째 줄에 게임 판의 크기 N (4 ≤ N ≤ 100)이 주어진다. 그 다음 N개 줄에는 각 칸에 적혀져 있는 수가 N개씩 주어진다. 칸에 적혀있는 수는 0보다 크거나 같고, 9보다 작거나 같은 정수이며, 가장
www.acmicpc.net
1. 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
n = int(input())
way=[]
for i in range(n):
way.append(list(map(int,input().split())))
#해당 좌표 이동가능한 방법의 갯수
dp = [[0 for _ in range(n)] for _ in range(n)]
#시작 지점 1로 지정
dp[0][0] = 1
for y in range(n):
for x in range(n):
if way[y][x]==0:
break
now = way[y][x]
#오른쪽 이동
if x+now <n:
dp[y][x+now] += dp[y][x]
#아래로 이동
if y+now <n:
dp[y+now][x] += dp[y][x]
print(dp[y][x])
|
cs |
2. 해결과정
좌표가 (0,0) 부터 (n-1,n-1)까지 순회하면서 현재좌표(x,y)에 오른쪽 or 아래쪽으로 갈 수 있는지 검사를 해주고, 갈 수 있다면 dp[x+now][y+now]에 dp[y][x]를 더해준다. dp는 해당 좌표로 이동가능한 방법의 갯수를 담아준다. 시작지점을 1로 초기화해서 시작해주면 된다.
도착지점이 0일때 break해주면 된다.
728x90
'공부 자료 > 알고리즘' 카테고리의 다른 글
(Python/파이썬) 백준 11656번 - 접미사 배열 (0) | 2021.08.12 |
---|---|
(Python/파이썬) 백준 2959번 - 거북이 (0) | 2021.08.12 |
(Python/파이썬) 백준 9012번 - 괄호 (0) | 2021.08.09 |
(Python/파이썬) 백준 2579번 - 계단 오르기 (0) | 2021.08.09 |
(Python/파이썬) 백준 11722번 - 가장 긴 감소하는 부분 수열 (0) | 2021.08.09 |