728x90
[Javascript] (백준 9046) 복호화
💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다.
내 풀이
//* 인풋 (디폴트)
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
const input = require('fs').readFileSync(filePath).toString().trim().split('\n');
//* 인풋 (커스텀)
const [n, ...inputs] = input.map((el) => el.trim());
//* 함수 콜 (고정)
let answer = solution(n, inputs);
answer = typeof answer === 'number' ? answer : answer.trim();
console.log(answer);
//* 로직함수
function solution(n, inputs) {
const result = [];
for (let i = 0; i < Number(n); i++) {
result.push(findFrequentChar(inputs[i]));
}
return result.join('\n');
}
function findFrequentChar(str) {
const map = new Map();
for (let i = 0; i < str.length; i++) {
map.set(str[i], (map.get(str[i]) || 0) + 1);
}
map.delete(' ');
let max = Math.max(...map.values());
let maxCount = 0;
for (let [k, v] of map) {
if (v === max) {
maxCount++;
maxChar = k;
}
}
return maxCount === 1 ? maxChar : '?';
}
배운 점, 느낀 점
- Math.max(…map.values()) 로 밸류중 최댓값 찾을수있네요
'Coding Test > JavaScript' 카테고리의 다른 글
[Javascript] (프로그래머스 level 1) 비밀 지도 (0) | 2022.06.30 |
---|---|
[Javascript] (프로그래머스 level 1) 문자열 내 마음대로 정렬하기 (0) | 2022.06.30 |
[Javascript] (프로그래머스 level 1) 소수 찾기 (0) | 2022.06.30 |
[Javascript] (프로그래머스 level 1) 예산 (0) | 2022.06.30 |
[Javascript] (백준 4673) 셀프 넘버 (0) | 2022.06.29 |
[Javascript] (백준 2839) 설탕 배달 (0) | 2022.06.28 |
[Javascript] (백준 20291) 파일 정리 (0) | 2022.06.27 |
[Javascript] (백준 1259) 팰린드롬 수 (0) | 2022.06.27 |
댓글