기존의 쿼티 유형 키 매핑 대신 단순히 영어 알파벳 순서, 즉 abcde...
에 따라 키를 매핑하는 키워드가 있다고 가정합니다.문제에 대해 알아보기 전에 다음 두 가지 가정을 해야 합니다.
-
현재 우리의 손가락 끝은 인덱스 0, 즉 'a
키에 있습니다. -
한 키에서 다른 키로 이동하는 데 걸리는 시간은 해당 인덱스의 절대 차이입니다. 예를 들어 'a'에서 'k'로 이동하는 데 걸리는 시간은 |0 - 10| =10
우리는 영어 소문자 알파벳 문자열을 받아 문자열을 입력하는 데 필요한 시간을 계산하고 반환하는 JavaScript 함수를 작성해야 합니다.
예를 들어 -
입력 문자열이 -
인 경우const str = 'dab';
출력
const output = 7;
발생한 움직임이 -
이기 때문에'a' -> 'd' = 3 'd' -> 'a' = 3 'a' -> 'b' = 1
예시
이에 대한 코드는 -
const str = 'dab'; const findTimeTaken = (str = '') => { let timeSpent = 0; const keyboard = 'abcdefghijklmnopqrstuvwxyz'; let curr = 'a'; for(let i = 0; i < str.length; i++){ const el = str[i]; const fromIndex = keyboard.indexOf(curr); const toIndex = keyboard.indexOf(el); const time = Math.abs(fromIndex - toIndex); curr = el; timeSpent += time; }; return timeSpent; }; console.log(findTimeTaken(str));
출력
콘솔의 출력은 -
7