function solution(s) {
let obj = {};
s.split('').reduce((prev,curr)=>obj[curr] = (obj[curr] | 0)+1,0);
return Object.keys(obj).filter(v=>obj[v]===1).sort().join('');
}
빈 객체에 reduce 메서드를 통해 문자열을 돌며 문자당 몇번이 출력되었는지 저장을 우선 해줬다. 그리고 Object.keys(), filter 를 통해 키를 순회하며 키의 값이 1인 키들만 배열로 반환하고 정렬해준뒤 문자열로 변경하였다.
function solution(s) {
let res = [];
for (let c of s) if (s.indexOf(c) === s.lastIndexOf(c)) res.push(c);
return res.sort().join('');
}
문자열을 순회하며
indexOf()
와lastIndexOf()
메서드를 사용해 첫번째 부터 인덱스를 찾고, 뒤에서부터 인덱스를 찾으며 만약 같은 인덱스를 반환할 경우 하나의 값밖에 없는 경우이므로 빈 배열에 그 값을 넣어주는 식으로 풀이를 하신 대단한 분들이 계신다...lastIndexOf()
는 언제 사요 할지 감도 없었는데 많이 배운다...