System.setIn(new FileInputStream("res/input_d1_2072.txt"));
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in, "UTF-8")
);
split()
말고 StringTokenizer
쓸 것
정규표현식 쓸 때는 split()
이 좋은데 단순 공백으로 분할하는 경우에는 StringTokenizer
가 낫다.
System.out.printf()
말고 StringBuilder
쓸 것
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
class Solution {
public static void main(String args[])
throws Exception {
System.setIn(new FileInputStream("res/input_d1_2072.txt"));
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in, "UTF-8")
);
int T = Integer.parseInt(br.readLine());
for(int tc = 1; tc <= T; tc++) {
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int ans = 0;
while(!st.hasMoreTokens()) {
int n = Integer.parseInt(st.nextToken());
if(n%2 != 0) {
ans += n;
}
}
System.out.println(new StringBuilder("#").append(tc).append(" ").append(ans));
}
br.close();
}
}
line by line으로 붙이는 게 좋다.
static
으로 선언해서 쓰는 거보다 넘기는 게 더 빠름