gpejvkdlf17   1년 전

경로를 역으로 출력하는 부분에서

StringBuilder를 사용하여 마지막에 시작지점을 추가해 준 뒤

reverse() 를 이용하여 뒤집어 출력

==> 오답

int now = end;
int count = 1;
StringBuilder sb = new StringBuilder();
while(path[now]!=0) {
    sb.append(now).append(" ");
    count++;
    now = path[now];
}
sb.append(now);
bw.write(count+"\n");
bw.write(sb.reverse().toString());

List 에 저장 후 역순으로 출력

==> 정답

List result = new ArrayList<>();
while(path[now]!=0) {
    result.add(now);
    count++;
    now = path[now];
}
result.add(now);
bw.write(count+"\n");
for(int i = result.size()-1; i >= 0; i--) {
    bw.write(result.get(i)+" ");
}

이렇게 차이가 나는 이유가 궁금합니다.

djm03178   1년 전

reverse를 하면 두 자릿수 이상의 수들이 모두 잘못 뒤집어지게 됩니다.

gpejvkdlf17   1년 전

감사합니다..!

단순한 이유였는데 생각을 못했네요

댓글을 작성하려면 로그인해야 합니다.