본문 바로가기
Coding Test/JavaScript

[Javascript] (백준 10816) 숫자 카드2

by Chaedie 2022. 6. 26.
728x90

[Javascript] (백준 10816) 숫자 카드2

💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다.

내 풀이

//* 인풋 (디폴트)
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
const input = require('fs').readFileSync(filePath).toString().split('\n');

//* 인풋 (커스텀)
const n = +input[0];
const numsA = input[1].split(' ').map((num) => +num);
const m = +input[2];
const numsB = input[3].split(' ').map((num) => +num);
//* 함수 콜 (고정)
let answer = solution();
answer = typeof answer === 'number' ? answer : answer.trim();
console.log(answer);

//* 로직함수
function solution() {
  const map = new Map();
  for (let i = 0; i < n; i++) {
    map.set(numsA[i], (map.get(numsA[i]) || 0) + 1);
  }

  let answer = [];
  for (let i = 0; i < m; i++) {
    answer.push(map.get(numsB[i]) || 0);
  }

  return answer.join(' ');
}

배운 점, 느낀 점

문자열에 += 으로 담았다가 return 하는 것보다.

배열에 push()로 담았다가 arr.join(’ ‘) 로 return 하는게 좀 더 빠르다.

댓글