jeongwon
[백준 JAVA] 10871번 X보다 작은 수 본문

나의 답안:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
class Main{
public static void main(String[] args) {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
try {
StringTokenizer st1=new StringTokenizer(bf.readLine()," ");
StringTokenizer st2=new StringTokenizer(bf.readLine()," ");
bf.close();
int n=Integer.parseInt(st1.nextToken());
int x=Integer.parseInt(st1.nextToken());
for(int i=0; i<n; i++) {
int a=Integer.parseInt(st2.nextToken());
if(x>a) System.out.print(a+" ");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
개선 답안:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int N = Integer.parseInt(st.nextToken());
int X = Integer.parseInt(st.nextToken());
StringBuilder sb = new StringBuilder();
st = new StringTokenizer(br.readLine(), " ");
for (int i = 0; i < N; i++) {
int value = Integer.parseInt(st.nextToken());
if (value < X)
sb.append(value).append(' ');
}
System.out.println(sb);
}
}

위의 것이 StringBuilder를 사용한 개선 답안이다.
String은 연산할 때마다 새로운 문자열 객체를 생성하는 반면, StringBuilder는 기존 객체의 크기를 늘리면서 값을 더해 속도가 더 빠르다.
개선 답안 출처 : https://st-lab.tistory.com/38
'오늘의 문제' 카테고리의 다른 글
| [백준JAVA] 1110번 - 더하기 사이클 (0) | 2022.05.24 |
|---|---|
| [백준 JAVA] 10952번 - A+B - 5 (0) | 2022.05.24 |
| [백준 JAVA] 11021번 A+B (0) | 2022.05.19 |
| [백준] 2480번 주사위 세 개 (0) | 2022.05.18 |
| [백준] 2525번 오븐 시계 (0) | 2022.05.18 |