문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.
function solution(s) {
let answer = '';
let one_time = new Map();
s = [...s].sort();
let count = 0;
for (let i = 0; i < s.length; i++) {
if (!one_time.has(s[i])) {
count = 0;
}
one_time.set(s[i], count++);
}
for (let [key, value] of one_time.entries()) {
if (value === 0) {
answer += key;
}
}
return answer;
}
map을 이용해서 key에 알파벳을, key가 등장하는 횟수를 value로 지정해서, 하나만 있는 것을 return 하도록 만들었다.
다른 분의 코드를 보다가 첫 인덱스와 마지막 인덱스가 동일한 것을 return 하는 것을 보고, 다른 자료구조를 선언할 필요 없이 인덱스를 사용해서 접근하는 방법도 가능하다는 것을 알게 되었다.
let res = [];
for (let r of s) {
if (s.indexOf(r) === s.lastIndexOf(r)) {
res.push(r);
}
}
return res.sort().join('');