๐
(๊ทธ๋ฆฌ๋) ํ๋ก๊ทธ๋๋จธ์ค ์กฐ์ด์คํฑ (level 2)
August 15, 2022
function solution(name) {
let answer = 0;
const length = name.length;
let unicodeA = 65;
let unicodeZ = 90;
for (let i in name) {
let unicodeAlphabet = Math.abs(unicodeA - name[i].charCodeAt(0)) > 13
? Math.abs(unicodeZ - name[i].charCodeAt(0)) + 1
: Math.abs(unicodeA - name[i].charCodeAt(0));
answer += unicodeAlphabet;
}
let move = length - 1;
for (let i = 0; i < length; i++) {
let nextIdx = i + 1
while (nextIdx < length && name[nextIdx] === 'A') {
nextIdx++;
}
let distance = Math.min(i, length - nextIdx);
move = Math.min(move, i + length - nextIdx + distance);
}
answer += move;
return answer;
}
console.log('hh', solution('JAN'));ํ๋ก๊ทธ๋๋จธ์ค ๊ทธ๋ฆฌ๋ ์ฝ๋ฉํ
์คํธ ๋ฌธ์ ์ค ์กฐ์ด์คํฑ ๋ฌธ์ ์ด๋ค.
๊ฐ์ฅ ์ฐพ๊ธฐ ์ด๋ ค์ ๋ ํฌ์ธํธ๋ unicodeAlphabet ์ ๊ตฌํ๋ ๊ฒ์ธ๋ฐ, ๊ธฐ์กด์๋ 13 ์ด๋ผ๋ ์์๋ฅผ ์ฐ์ง ์๊ณ
์ด๋ป๊ฒ๋ ๊ณ์ฐ์์ ๋ง๋ค์ด๋ณด๋ ค๊ณ ํ์ผ๋, A-Z ๋ก ์ด๋ํ๋ ๊ฒ๊น์ง ๊ฐ์ํด์ผํ๋ ๊ฒ๊ณผ ๋จ์ unicode ๋ฅผ ๊ตฌํ ๊ฒฝ์ฐ 1์ ์ค์ฐจ๊ฐ ์๊ธฐ๋ ์์ธ๋ค์
์ฒ๋ฆฌํ์ง ๋ชปํ๋ค.
13๋ฒ์งธ ์ํ๋ฒณ์ธ โOโ ๋ถํฐ๋ Z์์ ์ถ๋ฐํ๋ ๊ฒ์ด ๋ ์ด๋์ด๋ค. ์ํ๋ฒณ๊ณผ ๊ฐ์ด ๊ฐ์๊ฐ ํ์ ๋์ด ์๋ ๊ฒฝ์ฐ ์์๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๊ฒ ํ ์ ์๋ค.