🔺 문제
1328번: 고층 빌딩
상근이가 살고있는 동네에는 빌딩 N개가 한 줄로 세워져 있다. 모든 빌딩의 높이는 1보다 크거나 같고, N보다 작거나 같으며, 같은 높이를 가지는 빌딩은 없다. 상근이는 학교 가는 길에 가장 왼
www.acmicpc.net
🔺 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
import java.util.*;
import java.io.*;
public class Main {
static long mod = 1000000007;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int N = Integer.parseInt(st.nextToken());
int L = Integer.parseInt(st.nextToken());
int R = Integer.parseInt(st.nextToken());
long[][][] D = new long[101][101][101];
D[1][1][1] = 1; // 건물이 1개일 때 놓을 수 있는 경우의 수는 1개
for(int i = 2 ; i <= N ; i++) {
for(int j = 1 ; j <= L ; j++) {
for(int k = 1 ; k <= R ; k++) {
D[i][j][k] = D[i-1][j-1][k] + // 가장 작은 빌딩을 "왼쪽"에 놓는 경우
D[i-1][j][k-1] + // 가장 작은 빌딩을 "오른쪽"에 놓는 경우
D[i-1][j][k] * (i - 2); // 가장 작은 빌딩을 "가운데" 놓는 경우
D[i][j][k] %= mod;
}
}
}
System.out.println(D[N][L][R]);
br.close();
}
}
|
cs |
✅ 해결 아이디어
✔ DP- 점화식
- D[N][L][R] : 빌딩 N개를 왼쪽에서 L개, 오른쪽에서 R개가 보이도록 배치할 수 있는 모든 경우의 수
💥 유의사항
⇨ 이전 경우의 수 계산
🔺 다른 풀이들
- 과정 설명이 대박적이다..... 이거다...
[백준 1328번] 고층 빌딩 (java)
1328번: 고층 빌딩 상근이가 살고있는 동네에는 빌딩 N개가 한 줄로 세워져 있다. 모든 빌딩의 높이는 1보다 크거나 같고, N보다 작거나 같으며, 같은 높이를 가지는 빌딩은 없다. 상근이는 학교 가
lotuslee.tistory.com
[BOJ] 백준 1328 고층빌딩
출처: https://www.acmicpc.net/problem/1328 Input 3 2 2 Output 2 ▶ 동적계획법(Dynamic Programming, DP) 동적계획법(Dynamic Programming, DP) 동적 계획법(Dynamic Programming)은 큰 의미에서 분할 정복과 같은 접근 방식을 의
zoosso.tistory.com
💬 느낀 점
코드는 짧고 간단한 듯한... 하지만
아직까지 제 두뇌는... 해결 아이디어를 찾기까지 도달하지 못 합니다...ㅋㅠ
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V | 7/7 |
(참고)
✔ Do it 알고리즘 코딩테스트 자바편
✔ 3차원 배열...
java 1차원,2차원,3차원 배열 예제, 배열주소값 복사
배열은 다수의 데이터를 서로 다른 변수에 다량으로 선언하는것 보다는 같은 형의 데이터로 구성되어 있다면 하나의 자료 구조에 저장하여 사용하느게 배열입니다.배열을 1차열 배열부터 다차
core9090.tistory.com
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 11049번: 행렬 곱셈 순서 (0) | 2023.05.17 |
---|---|
[백준/JAVA] 2342번: Dance Dance Revolution (1) | 2023.05.16 |
[백준/JAVA] 1915번: 가장 큰 정사각형 (1) | 2023.05.16 |
[백준/JAVA] 9252번: LCS 2 (0) | 2023.05.16 |
[백준/JAVA] 13398번: 연속합 2 (1) | 2023.05.15 |