Picnic 문제에 대한 java소스 풀이인데요.
런타임오류(RTE)가 발생합니다.
어디서 잘못되었는지 확인할 방법이 없어서요. 답변부탁드리겠습니다.
importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.util.ArrayDeque;importjava.util.ArrayList;importjava.util.List;importjava.util.Queue;publicclassMain{staticintT;staticintareFriends[][];staticinttaken[];staticintAnswer;publicstaticvoidmain(String[]args)throwsIOException{BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));T=Integer.parseInt(br.readLine());intN,m;for(intt=0;t<T;t++){Stringinput=br.readLine();//학생수N=Integer.parseInt(input.split("\\s")[0]);//짝수m=Integer.parseInt(input.split("\\s")[1]);areFriends=newint[10][10];taken=newint[N];String[]CoupleInput=br.readLine().split("\\s");//짝 정보를 받아서 coupleList라는 배열에 넣음Queue<Integer>coupleList=newArrayDeque<Integer>();for(Stringnum:CoupleInput){coupleList.add(Integer.parseInt(num));}//coupleList 큐에서 하나씩 빼서 친구여부 2차배열에 1(친구여부이면)을 삽입for(inti=0;i<m;i++){intx=coupleList.poll();inty=coupleList.poll();areFriends[x][y]=1;areFriends[y][x]=1;}Answer=findPair(taken);System.out.println(Answer);}}privatestaticintfindPair(int[]taken){intret=0;intfirstFree=-1;for(inti=0;i<taken.length;i++){//아직 짝이 안지어진 사람이 있다면 firstFree를 그 사람 번호로 지정if(taken[i]==0){firstFree=i;break;}}if(firstFree==-1)return1;for(inti=firstFree+1;i<taken.length;i++){if(taken[firstFree]==0&&taken[i]==0&&areFriends[firstFree][i]==1){taken[firstFree]=taken[i]=1;ret+=findPair(taken);taken[firstFree]=taken[i]=0;}}returnret;}}
8년 전
0개의 댓글이 있습니다.
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면
온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야
합니다. 현재 문제를 푸셨습니다.
choi4780
Picnic 문제에 대한 java소스 풀이인데요.
런타임오류(RTE)가 발생합니다.
어디서 잘못되었는지 확인할 방법이 없어서요. 답변부탁드리겠습니다.
8년 전