언젠가는 펼쳐 볼 아카이브

[BOJ] 5622번 - 다이얼 본문

IT/Baekjoon Oline Judge

[BOJ] 5622번 - 다이얼

개발자희망생고롸파덕 2023. 8. 17. 20:23

사용언어 : javascript - node.js

 

#제출코드

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

solution(input);

function solution(input) {
  let answer = 0;

  for (let i = 0; i < input.length; i++) {
    let temp = input.charCodeAt(i);

    if (temp >= 65 && temp <= 67) {
      answer += 3;
    } else if (temp >= 68 && temp <= 70) {
      answer += 4;
    } else if (temp >= 71 && temp <= 73) {
      answer += 5;
    } else if (temp >= 74 && temp <= 76) {
      answer += 6;
    } else if (temp >= 77 && temp <= 79) {
      answer += 7;
    } else if (temp >= 80 && temp <= 83) {
      answer += 8;
    } else if (temp >= 84 && temp <= 86) {
      answer += 9;
    } else if (temp >= 87 && temp <= 90) {
      answer += 10;
    }
  }

  console.log(answer);
}

>> 결과 : 맞았습니다.

 

음.. 그런데 뭔가 코드가 찝찝하다. 간결하게 쓰고싶다.

찾아보자

 

 

#찾은 코드

let fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().trim();
let phone = {
	2: "ABC",
	3: "DEF",
	4: "GHI",
	5: "JKL",
	6: "MNO",
	7: "PQRS",
	8: "TUV",
	9: "WXYZ",
};
let result = 0;

for (let i = 0; i < input.length; i++) {
	for (let j = 2; j <= 9; j++) {
		if (phone[j].includes(input[i])) {
			result += j + 1;
			break;
		}
	}
}

console.log(result);

출처 : https://onelight-stay.tistory.com/523

 

객체를 사용하고 contains를 쓴다 ㅇ0ㅇ..............

내가 쓰고싶었던 짧은 코드다.

객체 사용. 기억하기.

'IT > Baekjoon Oline Judge' 카테고리의 다른 글

[BOJ] 3003번 - 킹, 퀸, 룩, 비숍, 나이트, 폰  (0) 2023.08.18
[BOJ] 25083번 - 새싹  (0) 2023.08.18
[BOJ] 2908번 - 상수  (0) 2023.08.17
[BOJ] 9086번 - 문자열  (0) 2023.08.17
[BOJ] 2743번 - 단어 길이 재기  (0) 2023.08.17