BOJ

백준 10164. 격자상의 경로 [Python]

Hoo_Dev 2022. 4. 16. 16:04
 

10164번: 격자상의 경로

입력의 첫째 줄에는 격자의 행의 수와 열의 수를 나타내는 두 정수 N과 M(1 ≤ N, M ≤ 15), 그리고 ○로 표시된 칸의 번호를 나타내는 정수 K(K=0 또는 1 < K < N×M)가 차례로 주어지며, 각 값은 공백으

www.acmicpc.net

def circle(n, m, c):
    if c == 0:
        for i in range(1, n):
            for j in range(1, m):
                lst[i][j] = lst[i - 1][j] + lst[i][j - 1]
        return lst[n-1][m-1]
    else:

        if c == m or c == 1 + m*(c-1):
            return 1

        for i in range(1, circle_y+1):
            for j in range(1, circle_x+1):
                lst[i][j] = lst[i - 1][j] + lst[i][j - 1]

        for i in range(circle_y+1, n):
            for j in range(circle_x+1, m):
                lst[i][j] = lst[i - 1][j] + lst[i][j - 1]

        return lst[circle_y][circle_x] * lst[n-1][m-1]



N, M, C = map(int, input().split())
lst = [[1] * M for _ in range(N)]


circle_y = (C - 1) // M
circle_x = (C - 1) % M
print(circle(N, M, C))

주의해야 할 부분은 동그라미가 표시된 곳의 좌표를 찾는 것과, 맨위 오른쪽, 맨 왼쪽 맨 아래 부분이 동그라미라면, 1을 출력해야하는 부분을 고려해야한다.

'BOJ' 카테고리의 다른 글

백준 1920. 수 찾기 [Python]  (0) 2022.04.17
백준 1259. 팰린드롬수[Python]  (0) 2022.04.17
백준 2615. 오목 [Python]  (0) 2022.04.13
백준 10989. 수 정렬하기 3 [Python]  (0) 2022.04.07
백준 1931. 회의실 배정 [Python]  (0) 2022.03.31