때때로 'codeforces.org'에서 문제를 해결하고 모든 해결 후에 다른 사람들의 솔루션을 볼 수 있습니다. 그러나 대부분의 다른 솔루션에는 많은 코드가 포함되어 있습니다. 예 : 다음과 같이 문제 코드 Domino Piling을 작성했습니다. 우리가 무엇을보고 codeforces
에서 2 순위왜 사람들은 경쟁 프로그래밍에서 너무 많은 코드를 사용하여 솔루션을 작성합니까?
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int m = in.nextInt(), n = in.nextInt();
int count = n*(m/2);
if(m%2 == 1)
count += n/2;
System.out.println(count);
in.close();
}
}
그러나 petr
그가 스레드를 사용하고 자신의 사용자 입력/출력 technique.But 내가 이해하지 오전 여기
import java.io.*;
import java.util.*;
public class Template implements Runnable {
private void solve() throws IOException {
int n = nextInt();
int m = nextInt();
writer.println(n * m/2);
}
public static void main(String[] args) {
new Template().run();
}
BufferedReader reader;
StringTokenizer tokenizer;
PrintWriter writer;
public void run() {
try {
reader = new BufferedReader(new InputStreamReader(System.in));
tokenizer = null;
writer = new PrintWriter(System.out);
solve();
reader.close();
writer.close();
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
int nextInt() throws IOException {
return Integer.parseInt(nextToken());
}
long nextLong() throws IOException {
return Long.parseLong(nextToken());
}
double nextDouble() throws IOException {
return Double.parseDouble(nextToken());
}
String nextToken() throws IOException {
while (tokenizer == null || !tokenizer.hasMoreTokens()) {
tokenizer = new StringTokenizer(reader.readLine());
}
return tokenizer.nextToken();
}
}
같은이 솔루션을 썼다 왜 이 솔루션을 해결하고 자신의 맞춤형 I/O 기술의 필요성은 무엇입니까 ?? 가장 인상 깊었던 것은 긴 코드 외에 코드 실행 시간이 나보다 낫습니다. 코드 실행 시간은 '90 밀리 초 '이고 내 시간은'248 밀리 초 '입니다.
누구나 그 이유를 설명 할 수 있습니까 ??
이것은 멀티 스레드가 아닙니다. 그는 방금 클래스의 인스턴스를 만들었으므로 각 메소드를 정적으로 할 필요가 없었습니다. 왜 그가 Runnable을 구현하는지 모르겠다. – Gendarme
여분의 코드는 스캐너를 교체하는 것이므로 성능면에서 더 효율적일 수 있습니다. 그는 아마도 각 문제에 대해'solve' 외부의 모든 코드를 재사용 할 것입니다. – assylias
아마도 "도전 과제"에 정기적으로 참여하는 사람은 "템플릿"이라는 이름에서 알 수 있듯이 미리 준비된 코드를 이미 가지고있을 수도 있습니다. 그런 다음 몇 줄만 사용자 정의해야합니다. – user140547