단어 공부 - javascript

6502 단어 백준코테백준

문제 (출처)

👉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로 만들어준다.

  • 뭔가 다 알꺼 같은다가도 아직도 배울게 많다... 아직 브론즈 레벨이라 갈 레벨이 너무 많다... 지치지 말고 꾸준히 가자 .. 그럼 승리한다.

좋은 웹페이지 즐겨찾기