알고리즘/JavaScript

자바스크립트로 백준 1551 풀기

홍구리당당 2023. 12. 15. 17:28

solved.ac 기준 브론즈 1단계.


내 풀이)

어려운 문제는 아니다.

k번 횟수만큼 for문을 돌면서, 새로운 배열을 만들면 된다.

만약 배열의 길이가 1 이하가 된다면 그대로 for 문을 끝낸다.

만약 처음부터 입력 받은 k가 0이라면, 입력받은 배열을 그대로 다시 리턴한다.


내 코드)

// fs로 입력받는 경우

function solution(numArr, N, K) {
  if (K === 0) {
    return numArr.join(",");
  }
  for (let i = 0; i < K; i++) {
    let answer = [];
    if (numArr.length <= 1) break;
    for (let i = 0; i < numArr.length - 1; i++) {
      answer.push(numArr[i + 1] - numArr[i]);
    }
    numArr = [...answer];
  }
  return numArr.join(",");
}

const fs = require("fs");
const [nArr, sArr] = fs
  .readFileSync("./알고리즘 연습/input.txt")
  .toString()
  .trim()
  .split("\n");

const [N, K] = nArr.split(" ").map(Number);
const arr = sArr.split(",").map(Number);

console.log(solution(arr, N, K));