문자 배열 arr가 주어지고 숫자 k가 주어진다고 할 때 중복되지 않는 k번째 문자를 리턴하는 문제이다 만약 k번째보다 낮은 순번으로 중복되지 않는 문자가 있다면 ""를 리턴해야한다
Example을 보면
일단 배열을 순회해서 중복되지 않는 문자를 앞에서 부터 순서대로 체크를 해야할것 같았다
const kthDistinct = function(arr, k) {
let dic = {};
let temp = [];
for(char of arr) {
dic[char] = (dic[char] || 0) + 1;
}
for(const key in dic) {
if(dic[key] === 1) {
temp.push(key);
}
}
return temp[k-1] ? temp[k-1]: ""
};
먼저 배열을 순회하면서 문자마다 횟수를 객체안에 넣어주었다
만약 중복되지 않는 문자라면 그 문자의 value 값이 1일것이므로
value 값이 1인 문자만 배열에 다시 넣어주었고
만약 temp[k-1]의 값이 존재한다면 그 값을 리턴, 존재하지 않는다면 ""를 리턴해주었다
submit을 해보니
정답이었다!