[백준 알고리즘] Node.js 1551. 수열의 변화
2023. 3. 20. 14:11ㆍ코딩연습
1. 문제
https://www.acmicpc.net/problem/1551
1551번: 수열의 변화
첫째 줄에 수열의 크기 N과 K가 주어진다. N은 20보다 작거나 같은 자연수이고, K는 0보다 크거나 같고, N-1보다 작거나 같은 정수이다. 둘째 줄에는 수열이 ‘,’로 구분되어 주어진다. 수열을 이루
www.acmicpc.net
2. 풀이
- 문제에서 크기가 n인 수열을 통하여 만든 새로운 수열을 만들고, 만들어진 수열을 통하여 다시 수열을 만드는 방법으로 k번 반복하였을 때 만들어진 수열을 구하는 문제이다.
- k가 0일 경우에는 입력 값 그대로 출력하면 된다.
const inputs = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
const [n,k] = inputs.shift().split(' ').map(Number);
let answerArr = [];
if(k === 0) console.log(inputs.join(','));
else {
let splitInputs = inputs[0].split(',').map(Number);
for(let i = 0; i < k; i++){
answerArr = [];
for(let j = 0; j < splitInputs.length; j++){
let calcNum = splitInputs[j+1] - splitInputs[j]
if(!isNaN(calcNum)) answerArr.push(calcNum)
}
splitInputs = answerArr;
}
}
console.log(answerArr.join(','))
3. 정리
- 새로운 수열을 만드는 과정에서 NaN 값을 방지하기 위해 isNaN() 메서드를 사용했다.
이후 신규 배열을 기존 값에 덮어씌우는 방식으로 반복하였다.
'코딩연습' 카테고리의 다른 글
[백준 알고리즘] Node.js 1834. 나머지와 몫이 같은 수 (0) | 2023.03.21 |
---|---|
[백준 알고리즘] Node.js 1813. 논리학 교수 (0) | 2023.03.20 |
[백준 알고리즘] Node.js 1526. 가장 큰 금민수 (0) | 2023.03.16 |
[백준 알고리즘] Node.js 1524. 세준세비 (0) | 2023.03.16 |
[JS] 백준 알고리즘 Node.js 1356. 유진수 (0) | 2023.03.11 |