정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.
첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000)
둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.
10 5
1 10 4 9 2 3 8 5 7 6
X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.
1 4 2 3
//https://www.acmicpc.net/problem/10871
const input = require("fs").readFileSync("/dev/stdin").toString().split("\n");
const [a, b] = input[0].split(" ");
const arr = input[1].split(" ");
let answer = "";
for (i = 0; i <= a; i++) {
if (b > +arr[i]) {
answer += arr[i] + " ";
}
}
console.log(answer);
a개의 숫자 중에서 b보다 작은 정수를 뽑아내는 문제
항상 input을 어떻게 처리해할지가 고민이었다.
이번에는 "\n" 단위로 split()하고
첫 줄의 input을 비구조할당해주고 두 번째 줄의 input을 리스트로 만들어주었다.
반복문을 a 번 만큼 돌리고 조건문을 써서 b 보다 작은 arr[i]를 찾아 answer 변수에 넣고 출력했다.
let p = i[0].split(" ").map(Number)[1];
let a = i[1].split(" ").filter((v) => v < p);
console.log(...a);
대부분 숏코딩은 filter로 뽑아내더라