Park DJ
dj0998
Park DJ
전체 방문자
오늘
어제
  • 분류 전체보기 (363)
    • 백준 (363)

공지사항

인기 글

태그

  • 백준 1495
  • 백준 1531
  • 백준 1011
  • 백준 8892
  • 백준 15312
  • 백준 2343
  • 백준 2225
  • 백준 7567
  • 백준
  • 백준 2467
  • 백준 15961
  • 백준 3135
  • 백준 24039
  • 자바
  • 백준 4659
  • 백준 3049
  • 백준 14582
  • 백준 7662
  • 백준 1064
  • 백준 6550
  • 백준 1747
  • 백준 1914
  • 백준 12605
  • 백준 10709
  • 백준 16926
  • 백준 2591
  • 백준 15655
  • Java
  • 백준 16194
  • 백준 12871
hELLO · Designed By 정상우.
Park DJ

dj0998

백준 10164 격자상의 경로(Java)
백준

백준 10164 격자상의 경로(Java)

2023. 2. 21. 15:49

https://www.acmicpc.net/problem/10164

 

10164번: 격자상의 경로

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

www.acmicpc.net


 

해석 및 팁

 


 

이 문제는 k가 0일 때와 0이 아닐 때를 구분해서 풀어야 합니다. k가 0일 때는 조건 없이 경로의 수를 개산 해주면 되고 k가 0이 아닐 때는 k까지의 범위를 2개로 나누어서 곱해주면 됩니다.

 


 

Java 코드

 


import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    int n = sc.nextInt();
    int m = sc.nextInt();
    int k = sc.nextInt();
    int[][] arr = new int[n][m];

    if(k == 0) {
      for(int i = 0; i < n; i++) {
        for(int j = 0; j < m; j++) {
          if(i == 0 || j == 0) arr[i][j] = 1;
          else arr[i][j] = arr[i][j - 1] + arr[i - 1][j];
        }
      }
      System.out.println(arr[n - 1][m - 1]);
    }

    else {
      int midx = (k - 1) / m;
      int midy = (k - 1) % m;

      for(int i = 0; i <= midx; i++) {
        for(int j = 0; j <= midy; j++) {
          if(i == 0 || j == 0) arr[i][j] = 1;
          else arr[i][j] = arr[i][j - 1] + arr[i - 1][j];
        }
      }
      
      int a = arr[midx][midy];

      for(int i = midx; i < n; i++) {
        for(int j = midy; j < m; j++) {
          if(i == midx || j == midy) arr[i][j] = 1;
          else arr[i][j] = arr[i][j - 1] + arr[i - 1][j];
        }
      }

      int b = arr[n - 1][m - 1];
      System.out.println(a * b);
    }

  }
}

'백준' 카테고리의 다른 글

백준 3049 다각형의 대각선(Java)  (0) 2023.02.21
백준 1747 소수&펠린드롬(Java)  (0) 2023.02.21
백준 2343 기타 레슨(Java)  (0) 2023.02.21
백준 5555 반지(Java)  (0) 2023.02.21
백준 10709 기상캐스터(Java)  (0) 2023.02.21
    '백준' 카테고리의 다른 글
    • 백준 3049 다각형의 대각선(Java)
    • 백준 1747 소수&펠린드롬(Java)
    • 백준 2343 기타 레슨(Java)
    • 백준 5555 반지(Java)
    Park DJ
    Park DJ

    티스토리툴바