관리 메뉴

사과하는 제라스

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

JAVA 백준 알고리즘 문제풀이/반복문

[백준 BOJ 10871번] X보다 작은 수

Xerath(제라스) 2022. 3. 28. 02:44

목차

    728x90
    반응형

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

     

    10871번: X보다 작은 수

    첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.

    www.acmicpc.net

     

    1. 문제

    정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.


    2. 입력

    첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000)

    둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.

    10 5
    1 10 4 9 2 3 8 5 7 6

    3. 출력

    X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.

    1 4 2 3

    4. 풀이

    StringTokenizer를 통해 N과 X 값을 입력받아온다. 이후 N개의 숫자를 문자열로 받아와서 split한 후 str String 배열에 넣어준다. 이후 str의 각 원소들을 X와 비교를 하는데, 이때 str의 원소들은 모두 String형이기 때문에 형변환을 한 후 비교를 해주어야한다. 비교를 통해 X보다 작은 값들은 sb에 append하고 for문이 모두 돈 후에 출력을 한다.


    5. 소스코드

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    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;
            st = new StringTokenizer(br.readLine());
            int N = Integer.parseInt(st.nextToken());
            int X = Integer.parseInt(st.nextToken());
            String [] str = br.readLine().split(" ");
            for(int i=0; i<N; i++){
                if(Integer.parseInt(str[i])<X) sb.append(str[i]).append(" ");
            }
            System.out.println(sb);
        }
    }

    6. 배운 것

    -

     

     

    728x90
    반응형