STRJOIN 문제 푼 결과가 오답인 이유를 모르겠습니다.

  • thsings
    thsings

    돌렸을 때 출력 예제와 같은 결과이지만 여기서 컴파일하면
    오답으로 나오는 이유를 알수가 없어 답답함을 이기지 못해
    이렇게 글을 씁니다.
    이런 경우는 어떻게 해야할지...조언 부탁드립니다.
    Scanner가 문제인가 해서 BufferedReader로 바꾸어도 오답....
    뭐가 문제인지 알고 싶습니다...

    STRJOIN

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.StringTokenizer;
    
    public class Main {
        public static void main(String[] args) throws Exception {
            int sum = 0;
            BufferedReader stdin
            = new BufferedReader(new InputStreamReader(System.in));
    
            ArrayList<Integer> al = new ArrayList<>();
            ArrayList<Integer> result;
    
            int c = Integer.parseInt(stdin.readLine());
    
            for (int i = 0; i < c; i++) {
                int total=0;
                result = new ArrayList<>();
                int n = Integer.parseInt(stdin.readLine());
    
                StringTokenizer st = new StringTokenizer(stdin.readLine());
                while (st.hasMoreTokens()) {
                    al.add(Integer.parseInt(st.nextToken()));
                }
    
                Collections.sort(al);
    
                for (int j = 0; j < n - 1; j++) {
                    sum = al.get(0) + al.get(1);
                    al.remove(0);
                    al.set(0, sum);
                    result.add(sum);
                    Collections.sort(al);
                }
    
                for (int j : result) {
                    total += j;
                }
                System.out.println(total);
            }
        }
    }
    

    10년 전
2개의 댓글이 있습니다.
  • Being
    Being

    접근의 문제는 아니고, 구현상의 문제로 여러 개의 테스트 케이스가 입력될 때 잘못 동작하고 있습니다.


    10년 전 link
  • thsings
    thsings

    답변 감사합니다. 한꺼번에 출력하는 것으로 바꿔보니...값이 엉켜버리는 것 같습니다. 배열설정을 다시해보겠습니다.
    감사합니다^^!


    10년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.