치춘짱베리굿나이스

[백준] 1475 본문

방 번호

문제

다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.

다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)

입력

첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.

출력

첫째 줄에 필요한 세트의 개수를 출력한다.

풀이

const dasom = () => {
  const fs = require("fs");
  let input = fs.readFileSync("/dev/stdin").toString().trim();
  let arr = [];
  let max = -1;

  for (let i = 0; i < 10; i++) {
    arr.push(
      input.length - input.split(String.fromCharCode(48 + i)).join("").length
    );
  }
  arr[6] = parseInt((arr[6] + arr[9]) / 2) + ((arr[6] + arr[9]) % 2);
  arr[9] = arr[6];
  console.log(Math.max(...arr));
};

dasom();

반성회

Math.max 나 Math.min 함수는 인자로 배열 그 자체를 받는 것이 아니라 내용물을 배열 형태로 받는 것 뿐이므로 전개연산자를 통해 배열을 전개해주어야 한다

Math.max([1, 2, 3]) //NaN
Math.max(1, 2, 3) //3

const arr = [1, 2, 3];
Math.max(...arr) //3
Math.max.apply(null, arr) //3

'Javascript + Typescript > 자바스크립트로 알고리즘풀기' 카테고리의 다른 글

[백준] 10808  (0) 2022.02.06
[백준] 2577  (0) 2022.02.06
[백준] 2443  (0) 2022.02.06
[백준] 2441  (0) 2022.02.06
[백준] 2439  (0) 2022.02.06
Comments