본문 바로가기
Coding Test/JavaScript

[Javascript] (백준 20291) 파일 정리

by Chaedie 2022. 6. 27.
728x90

[Javascript] (백준 20291) 파일 정리

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

내 풀이

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

//* 인풋 (커스텀)
let [n, ...files] = input;
n = +n;
files = files.map((file) => file.trim());

//* 함수 콜 (고정)
let answer = solution(n, files);
answer = typeof answer === 'number' ? answer : answer.trim();
console.log(answer);

//* 로직함수
function solution(n, files) {
  const map = new Map();

  files = files.map((file) => file.split('.'));
  for (let i = 0; i < n; i++) {
    map.set(files[i][1], (map.get(files[i][1]) || 0) + 1);
  }

  const result = [];
  for (let [file, count] of map) {
    result.push(file + ' ' + count);
  }

  return result.sort().join('\n');
}

배운 점, 느낀 점

HashMap() 사용법에는 익숙해진 것 같습니다.

아직 실력은 부족하지만, 지금과 같이 간단한 문제보다 조금 더 응용된 어려운 문제를 풀어야 실력이 더 늘것 같습니다.

댓글