[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;
}
}

๋๊ธ๋จ๊ธฐ๊ธฐ