RTE (nonzero return code) 이건 뭐가문제라는건가요...ㅜㅜ zeallat 분명히 이클립스로 돌릴때엔 예제를 잘 해결해내는데 뭐가문제일까요... 문제는 백년전쟁입니다 import java.util.LinkedList; import java.util.Scanner; public class Main { static Scanner keyboard = new Scanner(System.in); static LinkedList france=new LinkedList(); static LinkedList england=new LinkedList(); static LinkedList input=new LinkedList(); static LinkedList answer = new LinkedList(); public static void main(String[] args) { int T=keyboard.nextInt(); for(int j=0;j<T;j++) { int N=keyboard.nextInt();int Q=keyboard.nextInt(); Data temp; for(int k=0;k<N-2;k++)//한배열에 전부 입력 { temp = new Data(keyboard.nextInt(),keyboard.nextInt()); input.add(temp); } //일단국왕을색출해서 첫째라인 배정 //지금부터 팀배정 franceOperation(1); englandOperation(2);//팀배정완료 for(int w=0;w<Q;w++) { //keyboard.nextLine(); char choice = keyboard.next().charAt(0); if(choice=='T') { int tNum = keyboard.nextInt(); tOperation(tNum); } else if(choice=='Q') { int qNum1 = keyboard.nextInt(); int qNum2 = keyboard.nextInt(); qOperation(qNum1,qNum2); } } printAnswer(); } } public static void printAnswer() { for(int i=0;i<answer.size();i++) { System.out.println(answer.get(i)); } } public static void qOperation(int qNum1, int qNum2) { int qNum1Team = 0; int qNum2Team=0; for(int i=0;i<england.size();i++) { if(england.get(i).num==qNum1) { qNum1Team = england.get(i).team; } else if(england.get(i).num==qNum2) { qNum2Team = england.get(i).team; } } for(int i=0;i<france.size();i++) { if(france.get(i).num==qNum1) { qNum1Team = france.get(i).team; } else if(france.get(i).num==qNum2) { qNum2Team = france.get(i).team; } } if(qNum1==1||qNum1==2) { qNum1Team=qNum1; } if(qNum2==1||qNum2==2) { qNum2Team=qNum2; } if(qNum1Team==qNum2Team) { answer.add("Ally"); } else { answer.add("Enemy"); } } public static void tOperation(int tNum) { for(int i=0;i<england.size();i++) { if(england.get(i).num==tNum) { englandBasicBetray(tNum); englandBetray(tNum); return; } } for(int i=0;i<france.size();i++) { if(france.get(i).num==tNum) { franceBasicBetray(tNum); franceBetray(tNum); return; } } } public static void englandBasicBetray(int num)//넘겨받은 정수를 신하로 하는 것 뒤집기 { int index = 0; for(int i=0;i<england.size();i++) { if(england.get(i).num==num) { index=i; if(england.get(index).team==1) { england.get(index).team=2; } else if(england.get(index).team==2) { england.get(index).team=1; } } } } public static void englandBetray(int num)//넘겨받은 정수를 보스로하는 신하들 뒤집기 { int index = 0; while(true) { for(int i=0;i<england.size();i++) { if(england.get(i).boss==num) { index=i; if(england.get(index).team==1) { england.get(index).team=2; } else if(england.get(index).team==2) { england.get(index).team=1; } englandBetray(england.get(index).num); } if(i+1==england.size())//탈출조건 { return; } } return; } } public static void franceBasicBetray(int num)//넘겨받은 정수를 신하로 하는 것 뒤집기 { int index = 0; for(int i=0;i<france.size();i++) { if(france.get(i).num==num) { index=i; if(france.get(index).team==1) { france.get(index).team=2; } else if(france.get(index).team==2) { france.get(index).team=1; } } } } public static void franceBetray(int num)//넘겨받은 정수를 보스로하는 신하들 뒤집기 { int index = 0; while(true) { for(int i=0;i<france.size();i++) { if(france.get(i).boss==num) { index=i; if(france.get(index).team==1) { france.get(index).team=2; } else if(france.get(index).team==2) { france.get(index).team=1; } franceBetray(france.get(index).num); } if(i+1==france.size())//탈출조건 { return; } } return; } } public static void franceOperation(int num)/*주군번호*/ //프랑스팀 만들기 재귀함수 { int index = 0; while(true) { for(int i=0;i<input.size();i++) { if(input.get(i).boss==num) { index=i; break; } if(i+1==input.size())//탈출조건 { return; } } france.add(input.get(index)); france.getLast().team = 1; input.remove(index); franceOperation(france.getLast().num); } } public static void englandOperation(int num)/*주군번호*/ //영국팀 만들기 재귀함수 { int index = 0; while(true) { for(int i=0;i<input.size();i++) { if(input.get(i).boss==num) { index=i; break; } if(i+1==input.size())//탈출조건 { return; } } england.add(input.get(index)); england.getLast().team = 2; input.remove(index); if(input.size()==0) return; englandOperation(england.getLast().num); } } } class Data { int boss;//주군번호 int num;//신하번호 int team;//1은 프랑스 2는 영국 Data(int boss, int num) { this.num=num; this.boss=boss; } Data(int boss) { this.boss = boss; } } 11년 전
2개의 댓글이 있습니다. Being 프로그램이 비정상 종료되었다는 뜻입니다. 도움을문제를 어떻게 해결하고자 하셨는지에 대한 설명과 글쓰기 문법을 참고하여 소스 코드를 보기 좋게 하는 등 질문하는 성의를 보여 주시면 다른 분들께서 도움 주실 수 있을 것 같습니다. 11년 전 link zeallat 네ㅠㅠ 이클립스돌릴땐에러전부고쳤는데... 알겠습니당 11년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
zeallat
분명히 이클립스로 돌릴때엔 예제를 잘 해결해내는데 뭐가문제일까요...
문제는 백년전쟁입니다
import java.util.LinkedList;
import java.util.Scanner;
public class Main answer = new LinkedList();
{
static Scanner keyboard = new Scanner(System.in);
static LinkedList france=new LinkedList();
static LinkedList england=new LinkedList();
static LinkedList input=new LinkedList();
static LinkedList
public static void main(String[] args)
{
}
class Data
{
int boss;//주군번호
int num;//신하번호
int team;//1은 프랑스 2는 영국
Data(int boss, int num)
{
this.num=num;
this.boss=boss;
}
}
11년 전