ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 이동 경로의 가지수를 구하라.
    Algorithm with C/DFS 2020. 9. 16. 18:47

    문제

    본인이 프로그래밍을 한 이후에 올바르게 값이 출력이 되는지 궁금할 것이다.

    이 문제에서 구하는 경로의 개수는 아래와 같이 표현된다.

     

    위와 같이 식이 세워지는 이유를 찾아보자.

    X번 오른쪽으로, 그리고 Y번 아래쪽으로 진행하여 만들 수 있는 모든 경로의 수를 세야 한다.

    이 경로는 ( X + Y ) 개의 이동 단계로 구성된다.

    경로 하나를 만들려면, X + Y 번 이동하는 가운데 X번은 오른쪽으로 움직이도록 해야 한다.

    그러므로, 전체 경로의 수는 ( X + Y ) 가운데 X의 항목을 뽑는 경우의 수와 같다.

    그래서, 위와 같은 이항식이 나온다.

     

    문제 분석

    위의 문제의 초점은 로봇이 움직이는 방향이다.

    로봇은 두 방향으로만 움직이는 것이 가능하다.

    그리고, 시작위치와 끝 위치가 주어져 있다.

    여기서 역으로 시작위치에서 끝 위치로 이동해가면서 경로를 파악하는 것이 아니라,

    그 반대로 끝 위치에서 시작위치로 되돌아가면서 경로를 파악하자.

    그러면, 여기서 가장 중요한 것이 끝 위치의 바로 앞에 오는 경우를 구하는 것이 핵심이다.

    ( 여기서 방향이 중요하다. )

    이 것을 점화식으로 써보도록 하자.

     

     

    구현

    프로그램 실행결과

     

    소스 파일

    main.c
    0.00MB

     

    'Algorithm with C > DFS' 카테고리의 다른 글

    조약돌 놓기 문제  (0) 2020.09.16
    N 개의 계단  (0) 2020.09.16
    마족 찾기  (0) 2020.09.09
    집합의 부분 집합 출력하기 - 상태공간트리  (0) 2020.09.07
    출근길은 즐거워  (0) 2020.09.02

    댓글

Designed by Tistory.