10871번 : X보다 작은 수 - += 연산자, push, join 메서드, forEach 메서드
2022. 10. 20. 16:42ㆍBaekJoon/코드정리
문제
정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000)
둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.
출력
X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.
예제 입력 1 복사
10 5
1 10 4 9 2 3 8 5 7 6
예제 출력 1 복사
1 4 2 3
제출 코드
// 방법 1 += 연산자 사용 (얘도 forEach정도로 시간이 걸린다)
const fs = require("fs");
let input = fs.readFileSync(0).toString().split("\n");
let result = "";
let num0 = input[0].split(" ");
let num1 = input[1].split(" ");
for (let i = 0; i < parseInt(num0[0]); i++) {
if (parseInt(num1[i]) < parseInt(num0[1])) {
result += parseInt(num1[i]) + " ";
}
}
console.log(result.trim());
// 방법 2 push, join 메서드 사용
const fs = require("fs");
let input = fs.readFileSync(0).toString().split("\n");
let x = input[0].split(" ").map((x) => Number(x));
let A = input[1].split(" ").map((x) => Number(x));
let result = [];
for (let i = 0; i <= x[0]; i++) {
if (A[i] < x[1]) {
result.push(A[i]);
}
}
console.log(result.join(" "));
// 방법 3 forEach 메서드 사용 (근데 확실히 for문을 사용했을 때보다 시간이 약 60초정도 더 걸린다)
let fs = require("fs");
let input = fs.readFileSync(0).toString().split("\n");
let X = input[0].split(" ").map((el) => +el);
let A = input[1].split(" ").map((el) => +el);
let result = [];
A.forEach((item) => {
if (item < X[1]) result.push(item);
});
console.log(result.join(" "));
참고 사이트 : https://eunne.tistory.com/21
'BaekJoon > 코드정리' 카테고리의 다른 글
3052번 : 나머지 - map사용해서 Set 집합안에 넣기(중복값 제거) (0) | 2022.10.21 |
---|---|
10818번 : 최소, 최대 - sort사용(1 차원 배열) (0) | 2022.10.21 |
3003번 : 킹, 퀸, 룩, 비숍, 나이트, 폰 - map사용하여 입출력 (0) | 2022.10.17 |
10926: ??! - trim사용해서 공백없애고 입출력 (0) | 2022.10.17 |
1000번 : A + B - 입출력해보기! (0) | 2022.10.17 |