https://www.acmicpc.net/problem/16395
[풀이]
2차원 행렬의 열은 행의 숫자보다 하나 더 큰 상태이다. 그러므로 이를 생각해서 for문을 돌면서 dp 2차원 배열에 값을 저장하면 된다. 값을 저장할 때는 [i-1][j-1] + [i-1][j] 값이 곧 [i][j]의 값이므로 풀이를 진행하면 된다.
주의!
- DP의 브론즈 난이도 문제이기에 간단한 문제였다. 특별히 신경써야할 부분은 없으며 단지 for 반복문의 인덱스에 대해서만 신경 쓰면 충분할 것이라 생각한다.
- DP문제와 관련하여 부족하다고 생각해서 한동안 이와 관련하여 코테 문제를 풀 생각이다. 지금 내 코테 수준이 많이 낮은것을 자각하고 있는데 프로그래머스 데브코스에 참여하며 코테에도 집중해서 수준을 끌어올리고 싶다. 처음부터 시작하자!
[코드]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = br.readLine();
StringTokenizer st = new StringTokenizer(line, " ");
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
int[][] dp = new int[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < i + 1; j++) {
if (j == 0 || j == i) {
dp[i][j] = 1;
} else {
dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];
}
}
}
System.out.println(dp[n - 1][k - 1]);
}
}
'Algorithm > 백준' 카테고리의 다른 글
백준 1120번 : 문자열(Java) (0) | 2021.08.21 |
---|---|
백준 11720번 : 숫자의 합(Java) (0) | 2021.08.12 |
백준 1543번 : 문서 검색(Java) (0) | 2021.08.06 |
백준 20365번 : 블로그2(Java) (0) | 2021.08.05 |
백준 11060번 : 점프 점프(Java) (0) | 2021.08.04 |