문제
정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000)
둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.
출력
X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.
예제 입력 | 예제 출력 |
10 5 1 10 4 9 2 3 8 5 7 6 |
1 4 2 3 |
❓ - 풀이과정
처음에 push 와 join을 사용해서 푸는건가 싶어 몇번 해보다 자꾸 시간초과가 나와서
평소 풀던방식대로 answer = '';를 해주고 거기에 넣는 식으로 풀이했다.
이후 push와 join사용방법을 다시 찾아본뒤 두번째풀이 완료
total = Number(input[0].split(' ')[0]) 이런식으로 해도 Number로 바꾸는데 문제없는것같던데
처리시간의 문제인건가 시간초과가 자주떠서
변수를 선언할 때 input \n 한것을 split ' ' 으로 나눈변수를 만들어주어
Number(st[0]) 이런식으로 써주었더니 시간초과가 줄게되었는데 맞나모르겠다.
⭕ 내 풀이 1
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let st = input[0].split(' ');
let total = Number(st[0]), num = Number(st[1]);
let nd = input[1].split(' ');
let answer = '';
for(let i=0;i<total;i++){
if(num>nd[i]){
answer += nd[i] + ' ';
};
};
console.log(answer);
✔ - Number로 감싸기 주의
⭕ 내 풀이 2
let input = require('fs').readFileSync('/dev/stdin').toString().split('\n'),
first = input[0].split(' '),
second = input[1].split(' ');
let n = Number(first[0]);
let x = Number(first[1]);
let answer = [];
for(let i=0;i<n;i++){
let o = Number(second[i]);
if(o<x){
answer.push(o)
};
};
console.log(answer.join(' '));
✅ push
const animals = ['pigs', 'goats', 'sheep'];
const count = animals.push('cows');
console.log(count);
// expected output: 4
console.log(animals);
// expected output: Array ["pigs", "goats", "sheep", "cows"]
animals.push('chickens', 'cats', 'dogs');
console.log(animals);
// expected output: Array ["pigs", "goats", "sheep", "cows", "chickens", "cats", "dogs"]
✅ join
const elements = ['Fire', 'Air', 'Water'];
console.log(elements.join());
// expected output: "Fire,Air,Water"
console.log(elements.join(''));
// expected output: "FireAirWater"
console.log(elements.join('-'));
// expected output: "Fire-Air-Water"
-출처
https://www.acmicpc.net/problem/10871
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/push
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/join
'Algorithm > Baekjoon(Node.js)' 카테고리의 다른 글
[JavaSrcipt] Baekjoon - 10951 : A+B -4 (0) | 2021.08.30 |
---|---|
[JavaSrcipt] Baekjoon - 10952 : A+B -5 (while, length) (0) | 2021.08.30 |
[JavaSrcipt] Baekjoon - 2439 : 별 찍기 - 2 (문자열 자르기) (0) | 2021.08.28 |
[JavaSrcipt] Baekjoon - 2438 : 별 찍기 - 1 (repeat) (0) | 2021.08.28 |
[JavaSrcipt] Baekjoon - 11022 : A+B - 8 (0) | 2021.08.27 |