[Java] 2140. Solving Questions With Brainpower - LeetCode Daily Challenge코딩테스트/leetcode2023. 5. 12. 14:32
Table of Contents
728x90
728x90
풀이
DFS를 이용해서, 해당 칸을 탐색할 수 있을 경우 탐색해서 모든 경우의수를 구한다음 최대값을 구하는 단순 DFS문제라고 생각했다.
class Solution {
public static long max = -1;
public long mostPoints(int[][] questions) {
if(questions.length==1) return questions[0][0];
boolean[] bl = new boolean[questions.length];
for(int i=0; i<questions.length; i++) {
dfs(questions[i][0], i, questions[i][1]+1, questions, bl);
}
return max;
}
public void dfs(long sum, int idx, int tmp, int[][] questions, boolean[] bl) {
if(idx >= questions.length) {
max = Math.max(max, sum);
return;
}
for(int i=idx; i<questions.length; i++) {
if(tmp != 0) {
tmp--;
continue;
}
if(bl[i]) return;
bl[i]=true;
dfs(sum+questions[i][0], i+1, tmp+questions[i][1]+1, questions, bl);
bl[i]=false;
}
max = Math.max(max, sum);
}
}
분명 IDE의 콘솔에서는 정답이 출력되는데 왜 틀렸다고 하는지 모르겠다. 나는 100이 나오는데 ㅡㅡ
머리 환기시키고 재도전해봐야겠다..
728x90
300x250
@mag1c :: 꾸준히 재밌게
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!