코딩테스트/JAVA

[ 백준 ] 10871번 : X보다 작은 수 _ JAVA

어서오시우 2023. 12. 2. 17:41
728x90
문제

 

내 풀이
import java.io.*;
import java.util.StringTokenizer;

public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String NAndX = br.readLine();
StringTokenizer str = new StringTokenizer(NAndX, " ");
int N = Integer.parseInt(str.nextToken());
int X = Integer.parseInt(str.nextToken());

String numString = br.readLine();
StringTokenizer str2 = new StringTokenizer(numString," ");

StringBuilder stb = new StringBuilder();
for (int i = 0; i < N; i++) {
int num = Integer.parseInt(str2.nextToken());
if (num < X) {
stb.append(num).append(" ");
}
}
System.out.println(stb);
}
}
  • 정답은 맞았지만, Scanner 풀이가 더 간결해보이길래..!!
    그래도 BufferedReader를 사용하는게 코드 실행 속도는 훨씬 빠르겠죠?

 

Scanner를 사용한 풀이
import java.util.Scanner;

public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int X = sc.nextInt();
int N = sc.nextInt();
StringBuilder stb = new StringBuilder();
for (int i = 0; i < X; i++) {
int num = sc.nextInt();
if(num<N)stb.append(num + " ");
}
System.out.println(stb);
sc.close();
}
}

  • 역시.. Scanner를 사용한 코드의 길이가 거의 절반이지만 수행시간은 두 배가 넘는다는 점!