백준 2577번 JavaScript 문제풀이

Cho Dragoo·2021년 5월 13일
0
post-thumbnail

JavaScript 백준 온라인 알고리즘 공부

백준 2577 번 JavaScript 문제

숫자의 개수
https://www.acmicpc.net/problem/2577



본인이 제출한 답

const fs = require("fs");
const [...arr] = (process.platform === "linux"
  ? fs.readFileSync("/dev/stdin").toString()
  : `150
266
427
`
)
  .trim()
  .split("\n");

let arrLines = arr.map((element) => Number(element));

let strNumbers = String(arrLines[0] * arrLines[1] * arrLines[2]);
let answer = "";

for (let i = 0; i <= 9; i++) {
  let numArr = "";
  for (let j = 0; j < strNumbers.length; j++) {
    let strNum = Number(strNumbers[j]);
    if (i === strNum) {
      numArr += `${i}`;
    }
  }

  answer += numArr.length + "\n";
}

console.log(answer);


풀이과정 소감

  • 주어진 입력숫자 A × B × C 의 결과값을 배열로 만들어 배열자리마다 각각 0부터 9까지 대조해 같은 숫자를 찾아낼 때 출력할 변수배열에 바로바로 넣는 로직이다.
    이 문제 풀이의 해결 포인트는 연산할 때는 Number() 숫자타입으로, 배열을 탐색할 때는 String()같은 문자타입으로 전환하는 발상이 필요하다.

  • answer += numArr.length + "\n"보면 알 수있듯이 출력할 숫자를 문자타입로 전환하면 +는 결국 배열을 담는 역활이 되는 것이다. 각각의 문자형 숫자배열의 길이를 구해서 출력하는 걸로 제출을 했다. 온전한 숫자로 카운트해서 출력하는 방법 또한 있을지도 모른다.

profile
어떤 문제든 파악 할 수 있으며 해결책을 찾을 수 있는 개발능력을 꿈꾸고 있습니다.

0개의 댓글