반응형
문제 풀이
1. key는 keymap의 알파벳, value는 해당 알파벳의 인덱스의 최솟값으로 갖는 딕셔너리를 만듭니다.
2. targets의 target 별로 각 알파벳의 위의 딕셔너리의 value 값의 합을 answer에 넣습니다. 알파벳 중 하나라도 keymap에 없으면 -1을 answer에 넣습니다.
JS Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
function solution(keymap, targets) {
let answer = [];
// 알파벳 : 입력을 위한 최소 입력
let dictObj = {};
// 특정 알파벳을 입력하기 위한 키보드 최소 입력값
keymap.forEach(keys => {
keys.split('').map(function(k,i){
if ( k in dictObj ){
dictObj[k] = Math.min(dictObj[k], i+1);
} else {
dictObj[k]=i+1;
}
})
})
targets.forEach(target => {
answer.push(count(dictObj,target));
})
return answer;
}
// 문자열 target을 작성하기 위해 필요한 키보드 입력 횟수 반환
function count(keymap, target){
let answer = 0;
for (t of target.split('')){
if ( t in keymap ){
answer += keymap[t];
} else {
return -1;
}
}
return answer;
}
|
cs |
문제 링크
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 미로 탈출 JS (1) | 2023.03.05 |
---|---|
[프로그래머스] 카드 뭉치 JS (0) | 2023.03.01 |
[프로그래머스] 보석 쇼핑 Python (0) | 2022.03.05 |
[프로그래머스] 후보키 Python (0) | 2022.03.01 |
[프로그래머스] 신고 결과 받기 Python (0) | 2022.01.28 |