CodingTest/백준

[백준] 10871번: X보다 작은 수 - Java

서교동김계란 2024. 5. 7. 15:06
728x90

https://www.acmicpc.net/problem/10871


  • 문제

단계별로 풀어보기 4단계에 들어있는 문제입니다.


  • 풀이
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));
        StringBuilder sb = new StringBuilder();
        StringTokenizer st = new StringTokenizer(br.readLine());

        int n = Integer.parseInt(st.nextToken());   // 배열의 크기
        int x = Integer.parseInt(st.nextToken());   // 비교할 값
        int[] a = new int[n];

        st = new StringTokenizer(br.readLine());
        for (int i = 0; i < n; i++) {
            a[i] = Integer.parseInt(st.nextToken());// 배열 크기만큼 인데스에 요소 추가
            if (a[i] < x) {				// x보다 작은 수 검열
                sb.append(a[i]).append(' ');		// 작으면 인덱스에 추가
            }
        }
        System.out.println(sb);

    }
}

 

BufferedReader로 입력받아 StringTokenizer로 문자열을 분리한다.

 

처음에 for문 위에있는 StringTokenizer를 안 써서 오류가 나는데 왜 그런지 한참을 고민했다.

결과적으로 토큰은 재사용이 불가능 하다 였는데 정확히 이해하진 못했으나 

Enter키를 입력할 때마다 인스턴스를 해주어야한다는건 알았다.

좀더 공부해서 정확히 이해를 해야겠다...