Pi java 답안 런타임 에러 질문 (Nonzero return code) mewards nonzero return code 런타임 에러가 뜨는데 eclipse에서는 경고도 뜨지 않아서 어떻게 해결해야 할지 막막하네요 ㅜ 답변 부탁드립니다. PI package pi; import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); ArrayList<String> num = new ArrayList<>(); int cases = sc.nextInt(); while (cases-- > 0) { String input = sc.next(); num.add(input); } // int numInt = Integer.parseInt(num); for (int i = 0; i < num.size(); i++) { String now = num.get(i); int sum = 0; while (now.isEmpty() != true) { int three = 11, four = 11, five = 11; if (now.length() > 5) { three = chk(now.substring(0, 3)); four = chk(now.substring(0, 4)); five = chk(now.substring(0, 5)); } else if (now.length() == 4) { four = chk(now.substring(0, 4)); } else { three = chk(now.substring(0, 3)); } if (five > four) { if (four > three) { now = now.substring(3); sum += three; } else { now = now.substring(4); sum += four; } } else if (five == four) { if (four > three) { now = now.substring(3); sum += three; } else { now = now.substring(5); sum += five; } } else { if (three < five) { now = now.substring(3); sum += three; } else { now = now.substring(5); sum += five; } } } System.out.println(sum); } sc.close(); } static public int chk(String str) { ArrayList<Integer> arr = new ArrayList<>(); for (int i = 0; i < str.length(); i++) { int each = Integer.parseInt(str.substring(i, i + 1)); arr.add(each); } int diff = arr.get(1) - arr.get(0); if (diff == 0) { for (int i = 2; i < arr.size(); i++) { // 11111 if (arr.get(i - 1) == arr.get(i)) { if (i == arr.size() - 1) return 1; else continue; } else return 10; } } else { if (arr.get(0) == arr.get(2)) { if (arr.size() == 5) { if (arr.get(0) == arr.get(4) && arr.get(1) == arr.get(3)) return 4; else return 10; } else if (arr.size() == 4) { if (arr.get(1) == arr.get(3)) return 4; else return 10; } else { return 4; } } else { if (arr.get(1) - arr.get(0) == arr.get(2) - arr.get(1)) { if (diff == 1 || diff == -1) { if (arr.size() == 5) { if (arr.get(3) - arr.get(2) == diff && arr.get(4) - arr.get(3) == diff) return 2; else return 10; } else if (arr.size() == 4) { if (arr.get(3) - arr.get(2) == diff) return 2; else return 10; } else { return 2; } } else { if (arr.size() == 5) { if (arr.get(3) - arr.get(2) == diff && arr.get(4) - arr.get(3) == diff) return 5; else return 10; } else if (arr.size() == 4) { if (arr.get(3) - arr.get(2) == diff) return 5; else return 10; } else { return 5; } } } } } return 0; } } 10년 전
7개의 댓글이 있습니다. Being 다른 분들이 올리신 질문글과 글 작성시 표시되는 도움말을 참고하여 글을 가다듬어 주시기를 부탁드립니다. 10년 전 link mewards 메인 함수 외에 함수에서 리턴값을 가지면 런타임 에러가 발생하는 것 같아요 맞나요? 10년 전 link Being 아니오, package 구문이 문제입니다. 항상 Main으로 이름붙은 패키지 없는 클래스에 main 메소드가 존재해야 합니다. 10년 전 link mewards 저 코드에서 package 구문을 제거해도 똑같은 에러가 뜨네요 ㅠㅠ 10년 전 link Being 0000000000 같은 입력에서 실패합니다. 확인해 보시겠어요? :) 10년 전 link mewards if (now.length() >= 5) 로 등호 추가해서 확인했습니다. 그래도 똑같이 runtime error뜨네요 ㅠㅠ 10년 전 link Being 그 부분의 부등호만 수정하면 과연 문제가 해결될까요? 한번 고민해 보시기 바랍니다. 10년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
mewards
nonzero return code 런타임 에러가 뜨는데 eclipse에서는 경고도 뜨지 않아서 어떻게 해결해야 할지 막막하네요 ㅜ
답변 부탁드립니다.
PI
10년 전