Step-by-Step
LeetCode 1416. Restore The Array 본문
https://leetcode.com/problems/restore-the-array/
Restore The Array - LeetCode
Can you solve this real interview question? Restore The Array - A program was supposed to print an array of integers. The program forgot to print whitespaces and the array is printed as a string of digits s and all we know is that all integers in the array
leetcode.com
숫자의 일부분을 그룹으로 나누는 경우의 수를 구하는 문제!
근데 조건이 있다.
1. 각 그룹의 값이 0으로만 이루어지면 안된다.
2. 각 그룹의 값이 1이상 k이하 여야 한다.
[코드]
class Solution {
public int mod = (int)1e9+7, N = 0;
public int[] dp;
public int numberOfArrays(String s, int k) {
N = s.length();
dp = new int[N+1];
return dfs(0, s, k);
}
public int dfs(int idx, String s, int k){
if(dp[idx]!=0)
return dp[idx];
if(idx == N)
return 1;
if(s.charAt(idx)=='0')
return 0;
int cnt = 0;
for(int i = idx; i<N; i++){
String str = s.substring(idx, i+1);
if(Long.parseLong(str) > k)
break;
cnt = (cnt + dfs(i+1, s, k)) % mod;
}
dp[idx] = cnt;
return cnt;
}
}
'언어 > JAVA' 카테고리의 다른 글
[Java] 백준 14567 - 선수과목 (0) | 2023.05.08 |
---|---|
[Java] 백준 2565 - 전깃줄 (0) | 2023.05.08 |
[Java] 백준 2637 - 장난감 조립 (0) | 2023.04.12 |
[Java] 백준 21611 - 마법사 상어와 블리자드 (0) | 2023.03.22 |
[Java] 백준 23289 - 온풍기 안녕! (0) | 2023.03.22 |
Comments