Scanner 를 쓰면 시간 초과가 날 때가 많다. 시간을 조금이라도 줄이기 위해 사용하는 몇가지가 있다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
을 사용해서 문자열을 받고, int 입력이 필요할때에는
Integer.parseInt(st.nextToken())을 사용한다.
문자열을 출력할때에는
StringBuilder sb = new StringBuilder();
sb.append()를 사용한다.
예시는 아래와 같다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
StringBuilder sb = new StringBuilder();
for(int i=0; i<M; i++) {
st = new StringTokenizer(br.readLine());
int x1 = Integer.parseInt(st.nextToken());
int y1 = Integer.parseInt(st.nextToken());
int x2 = Integer.parseInt(st.nextToken());
int y2 = Integer.parseInt(st.nextToken());
int sum=0;
for(int k=x1; k<=x2; k++) {
sum=sum+num[k][y2]-num[k][y1-1];
}
sb.append(sum+"\n");
}
for(int i=0, size = counts.length; i<size; i++) {
System.out.println(counts[i]+" ");
}
댓글