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

jsg_ko·2021년 11월 12일
0

코테연습

목록 보기
9/21

내풀이

const fs = require("fs"); //파일받기위해 필요
const localFile = fs.existsSync("./input.txt"); // 내가 알고리즘 풀려는 폴더에 './input.txt'의 유무를 참,거짓으로 변수에 넣어라
const filePath = () => {
  // 참이면 내 input파일을 열고 그외는 백준의 알고리즘에서 주는 입력값을 받겠다.
  if (localFile) {
    return "./input.txt";
  }
  return "/dev/stdin";
};



const input = fs.readFileSync(filePath()).toString().trim().split("\n");


const x = Number(input[0].split(' ')[1]) // 판펼하는 기준인 입력받은 숫자를 저장했다
const numbers = input[1].split(' ').map(el => Number(el)); // 입력받은 숫자들을 배열로 저장하고 각 요소들를 Number메서드로 맵핑하였다
const checkedNumbers = numbers.filter(el => el < x); // 숫자들을 조건에 맞게 필터링하였다
let result = '';
checkedNumbers.forEach((el) => {result = result+el+' '}) // 다시 문자열로
console.log(result) 

다른풀이

제공되는 입력값중 숫자들의length 도 사용했다.
arr.length === num[0] 이라 굳이 나는 사용하지 않았다
for if문으로도 나보다 훨씬 직관적이고 깔끔하게 작성했다.
괜히 어렵게 생각한 것 같다.



let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');

let num = input[0].split(' ').map(x => Number(x));
let arr = input[1].split(' ').map(x => Number(x));
const answer = [];

for (let i = 0; i <= num[0]; i++) {
    if (num[1] > arr[i]) {
        answer.push(arr[i]);
    } 
}

console.log(answer.join(' '));
profile
디버깅에서 재미를 추구하면 안되는 걸까

0개의 댓글