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());
}
๋ฐ์ํ
'๊ฐ์ธ๊ณต๋ถ > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค][Node.js] 5338๋ฒ : ๋ง์ดํฌ๋ก์ํํธ ๋ก๊ณ (0) | 2021.11.11 |
---|---|
[๋ฐฑ์ค][Node.js] 5337๋ฒ : ์ฐ์ปด (0) | 2021.11.10 |
[๋ฐฑ์ค][Node.js] 5086๋ฒ : ๋ฐฐ์์ ์ฝ์ (0) | 2021.11.08 |
[๋ฐฑ์ค][Node.js] 5063๋ฒ : TGN (0) | 2021.11.04 |
[๋ฐฑ์ค][Node.js] 5052๋ฒ : ์ ํ๋ฒํธ ๋ชฉ๋ก (0) | 2021.11.02 |
๋๊ธ