⭐ Lv. 0 - 한 번만 등장한 문자
문자열 s
가 매개변수로 주어집니다. s
에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.
s
의 길이 < 1,000s
는 소문자로만 이루어져 있습니다.입출력 예 #1
입출력 예 #2
입출력 예 #3
문자열을 탐색하며 각 문자의 개수를 객체
형태로 저장하여 이를 기준으로 한 번만 등장하는 문자를 구분하였습니다.
이미 객체 내부에 해당 문자가 key
로 존재할 경우, 해당 key
값에 대한 value
를 증가시키며, 없을 경우에는 새롭게 key
와 value
를 추가해줍니다.
function solution(s) {
const counter = {};
let result = [];
[...s].forEach((cur) => {
if(cur in counter) counter[cur]++;
else counter[cur] = 1;
})
for(cur in counter) {
if(counter[cur] === 1) result.push(cur);
}
return result.sort().join("");
}
해당 풀이도 정상적으로 정답으로 인정되지만, lastIndexOf
method를 활용한 풀이를 발견하였습니다.
function solution(s) {
let result = [];
[...s].forEach((cur) => {
if(s.indexOf(cur) === s.lastIndexOf(cur)) result.push(cur);
})
return result.sort().join("");
}
indexOf
는 배열에서 전달받은 인자와 동일한 첫 index를 return하지만, lastIndexOf
는 배열에서 전달받은 인자와 동일한 가장 마지막 index를 return합니다. 이 둘이 같은 경우는 해당 배열에 오직 하나만 존재한다는 의미가 되므로, 해당 경우를 result
배열에 저장하여 이를 결과값으로 출력합니다.