도와주세요 boggle 런타임오류(nonzero return code) 알고리즘꾸 계속 런타임 오류가 뜨네요 어디서 잘못되었는지 알려주시면 감사하겠습니다! ㅠㅠ import java.io.*; import java.util.HashMap; import java.util.Scanner; class search_word { //처음의 5x5문자 public char[][] a; //찾을 문자 public String s; //메모이제이션 memo[처음문자배열의 인덱스][찾을 문자의 인덱스] private int[][] memo; public int success; //클래스의 생성자 public search_word(int n) { a=new char[5][5]; memo=new int[25][n]; success=0; } //단어 찾는 함수 i,j=처음문자 인덱스 level=찾을 문자의 인덱스 public void search(int i,int j,int level) { //메모이제이션이 1인 경우 멈춤 if(memo[5*i+j][level]==1) return; else { //스펠링이 다른 경우 return 멈춤 if(a[i][j]!=s.charAt(level)) { memo[5*i+j][level]=1; return; } else { if(level+1==s.length()) success=1; else { if(i>0) { search(i-1,j,level+1); if(success==1) return; } if(i<4) { search(i+1,j,level+1); if(success==1) return; } if(j>0) { search(i,j-1,level+1); if(success==1) return; } if(i<4) { search(i,j+1,level+1); if(success==1) return; } if(i>0&&j>0) { search(i-1,j-1,level+1); if(success==1) return; } if(i>0&&j<4) { search(i-1,j+1,level+1); if(success==1) return; } if(i<4&&j>0) { search(i+1,j-1,level+1); if(success==1) return; } if(i<4&&j<4) { search(i+1,j+1,level+1); if(success==1) return; } if(success!=1) memo[5*i+j][level]=1; } } } } } class Main { public static void main(String[] args) throws IOException { //테스트 케이스의 수 int C; //입력받을 단어의 수 int N; BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String str=br.readLine(); //테스트 케이스를 입력받음 C=Integer.parseInt(str); for(int i=0;i<C;i++) { char[][] arr=new char[5][5]; //5X5 문자를 입력받는다. for(int j=0;j<5;j++) { String str2=br.readLine(); for(int k=0;k<str2.length();k++) arr[j][k]=str2.charAt(k); } //입력받을 단어의 갯수를 입력받음 String str3=br.readLine(); N=Integer.parseInt(str3); //찾을 단어를 저장할 문자열 String[] word=new String[N]; //단어 찾기 성공유무 저장할 문자열 int[] success=new int[N]; for(int j=0;j<N;j++) { //단어를 입력 받는다. word[j]=br.readLine(); //클래스 변수 선언 search_word sw=new search_word(word[j].length()); sw.a=arr; sw.s=word[j]; for(int k=0;k<5&&sw.success!=1;k++) { for(int l=0;l<5&&sw.success!=1;l++) { sw.search(k,l,0); } } success[j]=sw.success; } //정답 출력 for(int j=0;j<N;j++) { if(success[j]==0) System.out.println(word[j]+" NO"); else System.out.println(word[j]+" YES"); } } } } 9년 전
0개의 댓글이 있습니다. 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
알고리즘꾸
계속 런타임 오류가 뜨네요 어디서 잘못되었는지 알려주시면 감사하겠습니다! ㅠㅠ
9년 전