👉https://www.acmicpc.net/problem/5622
숫자와 다이얼을 어떻게 연관 시킬까 고민을 하다 Object 구조로 하드코딩해도 될까 라는 생각을 하였다.
주어진 문자가 dial key에 포함되어 있을 경우 해당 문자를 입력하는데 걸리는 시간을 더하여 최소 시간 값을 구하였다.
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().split('');
const dial = {
ABC: 3,
DEF: 4,
GHI: 5,
JKL: 6,
MNO: 7,
PQRS: 8,
TUV: 9,
WXYZ: 10,
}
let result = 0;
for(let i = 0; i < input.length; i++){
for(let key in dial){
if(key.includes(input[i])){
result += dial[key];
break;
}
}
}
console.log(result);
다시 한번 느끼지만... 계속 생각만하고 실제적으로 코드를 작성하지 않으면 문제를 풀수 없다. 직접 내가 코드를 쳐봐야 내 실력이 향상 된다는 것을 잊지말자.
헷갈리는거는 나중에 봐야지 하지말고 지금 정리를 해야겠다. 매번 정리 하다보면 언젠가는 내것이 되겠지...
그리고 전에 풀었던거 주말에는 꼭 복습하는 시간을 가져야겠다... 이거이거 늙어서 그런지 자꾸 전에 풀었던거 복습을 안하니 자꾸 기억이 안나구만 ㅠ
//for in object 할 때 쓴다.
const object = { a: 1, b : 2};
for (let key in object){
console.log(`${key} : ${object[key]}`)
}
//expected output:
// "a: 1"
// "b: 2"
//for of 배열 할때 쓴다.
const array1 = ['a', 'b', 'c'];
for (let element of array1) {
console.log(element);
}
// expected output: "a"
// expected output: "b"
// expected output: "c"