TIL
[코테연습] 2053. Kth Distinct String in an Array
크라00
2024. 8. 5. 21:35
- 배열 / 해시 문제
- 문제분석
1. 문자열 배열이 존재한다.
2. 해당 문자열 배열에서 중복되는 배열을 제외한 값 중에서 k 번째에 해당하는 문자열을 반환하고, 없을 경우 "" 을 반환하라.
- 문제풀이
1. 배열을 반복하면서 Map<String, Integer> 에 문자열을 counting 한다.
2. 다시 배열을 반복하면서 map 에 2 이상 카운팅되었을 때를 제외하고 , index 를 더하면서 k 번째의 문자를 구한다.
class Solution {
public String kthDistinct(String[] arr, int k) {
String result = "";
Map<String, Integer> map = new HashMap<>();
for(int i = 0; i < arr.length; i++) {
map.put(arr[i], map.getOrDefault(arr[i], 0)+1);
}
int index = 0;
for (int i = 0; i < arr.length; i++) {
if (map.get(arr[i]) < 2) {
index++;
}
if (index == k) {
result = arr[i];
break;
}
}
return result;
}
}