[PS] 99ν΄λ½ μ½ν μ€ν°λ 24μΌμ°¨ TIL (λμΆ© λ§λ μν)
νκ·Έ: 99ν΄λ½, PS, TIL, κ·Έλν, μ½λ©ν μ€νΈμ€λΉ, νν΄99
μΉ΄ν κ³ λ¦¬: PS
λ¬Έμ
μ€λͺ
ν€ν¨λ λ°°μ΄μ΄ keymap μΌλ‘ μ£Όμ΄μ§κ³ , μ λ ₯νκ³ μ νλ κ°μ΄ targets λ°°μ΄λ‘ μ£Όμ΄μ§ λ targets μ λ€μ΄μλ λ¨μ΄λ₯Ό μμ±νκΈ° μν΄ ν€ν¨λλ₯Ό μ΄ λͺλ²μ© λλ¬μΌ νλμ§ κ°κ° λμ νμλ₯Ό λ°ννλ λ¬Έμ
νμ΄
ν€ν¨λλ₯Ό μ΅μλ‘ λλ¬μΌνκΈ° λλ¬Έμ μ£Όμ΄μ§ keymap μ 체μμ μ€λ³΅λλ λ¬Έμλ μΈλ±μ€ λ²νΈκ° λ μμ ν€ν¨λλ₯Ό λλ¬μΌ νλ€.
1
2
keymap = ["ABACD", "BCEFD"]
targets = ["ABCD"]
μλ₯Ό λ€μ΄ keymap κ³Ό targets λ°°μ΄μ΄ μμ κ°μλ A κ° ν€ν¨λ νλμ λκ° λ€μ΄μμ§λ§ μ²μ νλ²λ§ λλ₯΄λ©΄ λλ€. κ° ν€ν¨λμ μμλ₯Ό μ μ₯ν map μ λ§λ€μ΄ λκ³ , keymap μ λͺ¨λ νλͺ©μ μννλ©΄μ μ€λ³΅ λ¬Έμμ λν΄μ μμκ° λ μμ κ°μΌλ‘ κ°±μ μμΌ μ€λ€.
μ΄λ μμλ 1λΆν° μ μ₯νλ€. μ΄μ λ¬Έμ λ³ λλ¬μΌ νλ μ΅μ νμκ° map μ λͺ¨λ λ€μ΄μκ² λλ€. map μμ target μ μλ λ¬Έμλ₯Ό μ°Ύμμ μΉ΄μ΄νΈλ§ ν΄μ£Όλ©΄ λλ€.
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
class Solution {
public int[] solution(String[] keymap, String[] targets) {
int[] answer = new int[targets.length];
HashMap<Character, Integer> map = new HashMap<>();
for (String s : keymap) {
char[] charArray = s.toCharArray();
for (int j = 0; j < charArray.length; j++) {
char c = charArray[j];
if (map.get(c) == null || map.get(c) > j) {
map.put(c, j + 1);
}
}
}
for (int i = 0; i < targets.length; i++) {
char[] charArray = targets[i].toCharArray();
for (int j = 0; j < charArray.length; j++) {
char c = charArray[j];
if (map.containsKey(c)) {
answer[i] += map.get(c);
} else {
answer[i] = -1;
break;
}
}
}
return answer;
}
}
λκΈλ¨κΈ°κΈ°