티스토리 뷰

알고리즘/백준 문제풀이

백준 nodejs 2231번: 분해합

YG - 96년생 , 강아지 있음, 개발자 희망 2021. 10. 19. 13:12

 

const fs = require("fs");

const filePath = process.platform === "linux" ? "./input.txt" : "/dev/stdin"; //제 개발환경은 리눅스이기에 input.txt를 앞에 두었습니다.

// const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; // 실제 백준사이트에 제출할 때는 위에 filePath를 삭제하고 이 부분을 입력하면 됩니다.

let input = +fs.readFileSync(filePath).toString(); // split을 쓰면 시간초과로 오류가 납니다!

//console.log(input);

solution(input);

function solution(A) {
  //A = A.toString()
  // .split("")
  // .map((item) => +item);
  //console.log(A[0] + A[1] + A[2]);
  let answer = 756657467684;
  for (let i = 0; i <= A; i++) {
    let sum = 0;
    i = i
      .toString()
      .split("")
      .map((item) => +item); // i 를  2, 1 6 이렇게 각각의 숫자를 가진 배열로 만드는 과정
    for (let k = 0; k < i.length; k++) {
      sum = sum + i[k]; // 각각의 숫자의 합
    }
    i = +i.join("");
    //console.log(i + sum);
    if (i + sum === A && answer > i) {
      // i + sum 이 A 이고 answer 이 i보다 작은 최저값이여야함
      answer = i;
    }
    //console.log(i);
  }
  if (answer > 1000000000) {
    // asnwer이 없다면 0으로 출력
    answer = 0;
  }
  console.log(answer);
}

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함