brackman007   9년 전

안녕하세요 자바로 문제 풀고 있는 학생입니다.

항상 문제 풀고 나면 다른 사람 코드보면서 공부하는데요, 아래와 같이 코드를 구현하는 분이 있어서요.


1. 일단 메인함수 말고 run함수를 만들어서 돌리시고,

2. Scanner sc = new Scanner(System.in)이나 System.out.print()를 사용하지 않고 다른 메소드를 사용하시네요.

같은 알고리즘에 대해서 저렇게 풀면 속도가 두 배 정도 빠르더군요. 1. 2. 가 각각 어떤 기능인지, 어떻게 보통 코드보다 빨라 질 수 있는지가 궁금해요.

movie_jo   9년 전

저도 정확히는 모르지만

1번은 static 함수와 일반 함수의 차이인 것 같네요

2번은 document를 보면 성능이 향상된다고 되어있긴 합니다

movie_jo   9년 전

추측으론 Scanner는 매번 input을 받을 때 마다 system.in에 가서 읽어오고

BufferedReader는 Scanner에서 미리 받아서 Buffer에 저장해놓고 Buffer에서 읽어와서 더 빠른게 아닐까 생각합니다

brackman007   9년 전

아하 출력값들을 모아놨다가 한번에 출력하는게 더 빠르길래 저도 평소에 StringBuilder 써서 출력하고 있었는데, 2번은 (정확히는 아니지만) 납득이 가네요. 감사합니다

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