백준 알고리즘 3단계 for문 10871번 문제입니다.
Q. 정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.
[입력]
- 첫째 줄에 N과 X가 주어진다.
- 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다.
[조건]
- N은 1보다 크거나 작다. X는 10000보다 작거나 같다.
- 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.
- X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.
이 문제는 정수형 배열을 이용해서 해결했다.
수열 A를 배열에 담고 반복문을 돌려 정수 X와 비교했다. 정수 X보다 작은 값들은 문자열에 담아 공백으로 구분해 출력했다.
for문과 배열을 이용하면 어렵지 않게 풀 수 있는 문제였다.
풀이
package com.baek.algo;
import java.util.Scanner;
public class Q10871 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int numN = sc.nextInt();
int numX = sc.nextInt();
int[] arr = new int[numN];
String result = "";
for(int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
}
for(int i = 0; i < arr.length; i++) {
if(arr[i] < numX) {
result = result + arr[i] + " ";
}
}
System.out.println(result.substring(0, (result.length()-1)));
sc.close();
}
}