문제
1 번째 시도
- 자료구조는 HashMap을 사용한다.
- HashMap에 알파벳마다 눌러야 하는 최소 횟수를 저장한다.
- Keymap의 알파벳을 탐색하며 알파벳마다 눌러야 하는 최소 횟수를 업데이트 해간다.
import java.util.*;
class Solution {
public int[] solution(String[] keymap, String[] targets) {
int n = keymap.length;
HashMap<Character, Integer> map = new HashMap<>();
for (int i = 0; i < n; i++) {
for (int j = 0; j < keymap[i].length(); j++) {
char key = keymap[i].charAt(j);
if (!map.containsKey(key)) {
map.put(key, j + 1);
} else {
int previousPosition = map.get(key);
map.put(key, Math.min(previousPosition, j + 1));
}
}
}
int[] result = new int[targets.length];
for (int i = 0; i < targets.length; i++) {
for (int j = 0; j < targets[i].length(); j++) {
char targetChar = targets[i].charAt(j);
if (map.containsKey(targetChar)) {
result[i] += map.get(targetChar);
} else {
result[i] = -1;
break;
}
}
}
return result;
}
}
알지 못했던 함수
- HashMap 해당 Key가 포함되어 있는지 확인하는 함수
boolean containsKey(Object Key)
- HashMap 해당 Value가 포함되어 있는지 확인하는 함수
-
boolean containsValue(Object Value)
-
- char → String
-
change = String.valueOf(cr); change = Character.toString(cr);
-
- String → char
-
char[] chr = str.toCharArray();
-
- 배열 특정 값으로 꽉채우기
-
Arrays.fill()
-
'알고리즘' 카테고리의 다른 글
[프로그래머스] 무인도 여행, 자바 (0) | 2024.04.15 |
---|---|
[프로그래머스] 택배상자, 자바 (0) | 2024.04.15 |
2개 이하로 다른 비트 / 자바 / 프로그래머스 (0) | 2024.04.14 |
항해 99 17일차 TIL ( JadenCase 문자열 만들기 / 프로그래머스) (0) | 2024.04.14 |
항해 99 16일차 TIL( 광물캐기 / 프로그래머스) (0) | 2024.04.13 |