-
[백준 Node.js] 10871번 X보다 작은 수 (새로운 문법 시도!)To infinity/Coding Practice 2021. 6. 21. 23:24
2021.06.21
Question
Answer code
1. += 연산자 사용 (얘도 forEach정도로 시간이 걸린다)
let fs = require('fs'); let input =fs.readFileSync('/dev/stdin').toString().split('\n'); let X = input[0].split(' ').map((el) => +el); let A = input[1].split(' ').map((el) => +el); let result = '' for(i=0; i < X[0]; i++){ if(A[i] < X[1]) result += A[i] + ' '; } console.log(result);
2. push, join 메서드 사용
let fs = require('fs'); let input =fs.readFileSync('/dev/stdin').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('/dev/stdin').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(' '));
세가지 방법으로 풀어봤는데 추후 또다른 방법이 있다면 추가해보도록 하겠다.
뭔가 처음에는 +=연산자로 풀다가 문법을 찾아보기 시작하면서 해당 문법을 이용하고, 그러다가 다른 문법까지 응용해보니까 뭐랄까, 좀 더 '프로그래머스러운 코드'(그게뭔데)를 작성하게 되는 것 같아서 기부니 좋다.
How to solve?
1. VS CODE에서 실행했을 때 자꾸 결과값에 10이 나와서 확인해보니 변수 A에 값을 넣을 때 숫자형으로 변환을 안 시켜줬다.
2. 다른사람들은 어떻게 작성했는지 찾아보다가, 자바스크립트에서 제공하는 문법을 사용해서 코드를 작성해야겠다는 생각이 들었다. 해당 내용으로 작성한 코드는 Answer code에..
1) 배열에 요소 추가: Push 메서드
2) 배열요소 기본문자열로 반환: Join 메서드
3) forEach -> 추가예정
Reference
'To infinity > Coding Practice' 카테고리의 다른 글
[백준 Node.js] 10818번 최대값 최소값 (0) 2021.06.22 [백준 Node.js] 1110번 더하기 사이클 (0) 2021.06.22 [백준 Node.js] 11021번 A+B -7 (테스트케이스) (0) 2021.06.20 [백준 Node.js] 2741번 N 찍기 (0) 2021.06.20 [백준 Node.js] 15552번 빠른 A+B (0) 2021.06.20