단어 공부 - javascript
문제 (출처)
👉https://www.acmicpc.net/problem/1157
나의 접근
-
항상 object을 활용하여 문제를 해결하고 싶다는 생각을 했는데, 이번에 object을 활용하여 문제를 해결하면 좋을거 같아서 활용해 보았다.
-
문자를 key로 갯수를 value로 하여 그 중 가장 높은 수를 max로 설정하고, 그 max인 것이 1개 이상일 때 '?'를 리턴하게 만들었다.
풀이
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().trim().toLowerCase();
const charMap = {};
console.log(typeof charMap);
for (let char of input){
charMap[char] = charMap[char] ? charMap[char] + 1 : 1;
}
let max = Math.max.apply(null, Object.values(charMap));
let maxChar = '';
let count = 0;
for(let char in charMap){
if(charMap[char] === max){
maxChar = char;
count++;
}
}
if(count > 1){
console.log('?');
}else{
console.log(maxChar.toUpperCase());
}
오늘의 배운점 및 교훈
-
object에 넣고 불러오는 방법에 대해 익숙하도록 훈련해야겠다.
-
for in, for of, forEach 사실 아직 헷갈린다. 다시 한번 봐야곘다.
-
Math.max.apply(null, array)를 쓰면 array 자체를 넣을수 있다.
-
Object.values(object)를 하면 value값만 array로 만들어준다.
-
뭔가 다 알꺼 같은다가도 아직도 배울게 많다... 아직 브론즈 레벨이라 갈 레벨이 너무 많다... 지치지 말고 꾸준히 가자 .. 그럼 승리한다.
Author And Source
이 문제에 관하여(단어 공부 - javascript), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@donq/단어-공부-javascript저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)