JLIS 문제 질문드립니다. qwerthfk 책을 참고하여 문제를 풀어봤습니다. 계속 오답이 뜨는데 디버기을 해봐도 모르겠습니다 ㅜㅜ 어디가 문제인가요?? public class JLIS { public static Scanner scan = new Scanner(System.in); private static int[] A, B; private static int[][] cache; private static String[] result; public static void main(String[] args) { int testNum = scan.nextInt(); result = new String[testNum]; for(int i=0; i<testNum; i++) { result[i] = ""; int a = scan.nextInt(); int b = scan.nextInt(); A = new int[a]; B = new int[b]; cache = new int[a+1][b+1]; for(int j=0; j<a; j++) { A[j] = scan.nextInt(); } for(int k=0; k<b; k++) { B[k] = scan.nextInt(); } int max = getLIS(-1, -1); if( max < 2) { max = 0; } result[i] = result[i].concat(max+"\n"); } for(int i=0; i<testNum; i++) { System.out.print(result[i]); } } private static int getLIS(int aI, int bI) { int ret = cache[aI+1][bI+1]; if(ret != 0) return ret; ret = 0; int a = (aI==-1 ? -1 : A[aI]); int b = (bI==-1 ? -1 : B[bI]); int max = Math.max(a, b); for(int nextA=aI+1; nextA<A.length; ++nextA) { if(max < A[nextA]) { ret = Math.max(ret, getLIS(nextA, bI)+1); } } for(int nextB=bI+1; nextB<B.length; ++nextB) { if(max < B[nextB]) { ret = Math.max(ret, getLIS(aI, nextB)+1); } } cache[aI+1][bI+1] = ret; return ret; } } 10년 전
0개의 댓글이 있습니다. 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
qwerthfk
책을 참고하여 문제를 풀어봤습니다.
계속 오답이 뜨는데 디버기을 해봐도 모르겠습니다 ㅜㅜ
어디가 문제인가요??
public class JLIS {
}
}
}
10년 전