๊ฐ์ธ๊ณต๋ถ/Algorithm
[๋ฐฑ์ค][Node.js] 5218๋ฒ : ์ํ๋ฒณ ๊ฑฐ๋ฆฌ
๐๋ฐ๋ด๋ด๐
2021. 11. 9. 23:13
Algorithm
- ์ํ๋ฒณ ๊ฑฐ๋ฆฌ -
๋ฌธ์
๊ธธ์ด๊ฐ ๊ฐ์ ๋ ๋จ์ด๊ฐ ์ฃผ์ด์ก์ ๋, ๊ฐ ๋จ์ด์ ํฌํจ๋ ๋ชจ๋ ๊ธ์์ ์ํ๋ฒณ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๋ ๊ธ์ x์ y ์ฌ์ด์ ์ํ๋ฒณ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ค๋ฉด, ๋จผ์ ๊ฐ ์ํ๋ฒณ์ ์ซ์๋ฅผ ํ ๋นํด์ผ ํ๋ค. 'A'=1, 'B' = 2, ..., 'Z' = 26. ๊ทธ ๋ค์ y ≥ x์ธ ๊ฒฝ์ฐ์๋ y-x, y < x์ธ ๊ฒฝ์ฐ์๋ (y+26) - x๊ฐ ์ํ๋ฒณ ๊ฑฐ๋ฆฌ๊ฐ ๋๋ค.
์๋ฅผ ๋ค์ด, 'B'์ 'D' ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ 4 - 2 = 2์ด๊ณ , 'D'์ 'B' ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ (2+26) - 4 = 24์ด๋ค.
์ ์ถ๋ ฅ ์์
๋ฌธ์ ํ๊ธฐ
let fs = require("fs");
let input = fs.readFileSync("/dev/stdin")
.toString()
.split("\n");
let alpha = "abcdefghijklmnopqrstuvwxyz".toUpperCase().split("");
alpha = new Map(alpha.map((el, idx) => [el, idx + 1]));
for (let i = 1; i <= +input[0]; i++) {
let test = input[i].split(" ");
let result = "Distances: ";
for (let j = 0; j < test[0].length; j++) {
let str1 = alpha.get(test[0][j]);
let str2 = alpha.get(test[1][j]);
if (str1 <= str2) result += (str2 - str1) + ' ';
else result += (str2 + 26 - str1) + ' ';
}
console.log(result.trim());
}
๋ฐ์ํ