[백준 13395번] 그리디 알고리즘 - 단어수학

김민지·2023년 7월 5일
0

냅다 시작 백준

목록 보기
49/118

✨ 문제 ✨

✨ 정답 ✨

const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./예제.txt";
let input = fs.readFileSync(filePath).toString().trim();
// const fs = require('fs'); 
// let input = fs.readFileSync('/dev/stdin').toString().trim();

input=input.split('\n')
const N=+input[0]
let words=[];
const count={};
const number=[0,1,2,3,4,5,6,7,8,9];

for (let i=1;i<=N;i++){
    words.push(input[i].trim())
}
// console.log(words)

for (let i=0;i<N;i++){
    [...words[i]].forEach((alphabet, index)=>{
        if (!count[alphabet]){
            count[alphabet]=0;
        }
        count[alphabet]+=10**(words[i].length-index-1);
        
    })
}
console.log(Object.values(count).sort((a, b)=>b-a).reduce((previous, current, i)=>previous+current*number.pop(),0))

🧵 참고한 정답지 🧵

https://parkparkpark.tistory.com/99

💡💡 기억해야 할 점 💡💡

내가...자바스크립트를 자유자재로 사용하고 있지 못하다는 생각이 든다.
1. reduce랑 Object.values를 코테에서 써야겠다는 생각을 한 적이 없는데...
2. 나는 객체 배열에 각 알파벳이 들어 있는 자리의 수를 배열로 넣어주려 했는데... 일단 구현도 복잡했고... 답지를 보니 이건 무슨 황당한 풀이인가 싶다.

profile
이건 대체 어떻게 만든 거지?

0개의 댓글