[기초 Lv.0] 한 번만 등장한 문자

oaksusu·2024년 1월 22일
0
post-thumbnail

오답노트 10번

1. 문제 (링크) :

문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.

2. 내가 푼 방법 :

문자열s을 스프레드 문법으로 배열로 만든 다음,
map으로 돌면서 Set으로 선언한 변수 repeated에 넣고,
repeated에 있는 값과 동일한게 있을때는 별도의 배열 변수 repeatedArr에 넣음
그리고 문자열을 filter를 통해서 repeatedArr에 있는 값들이 아닌것들만 고름
(너무 코드가 길어진 것 같아 아쉬운 부분임)

function solution(s) {
    var repeated = new Set();
    const repeatedArr = [];

    [...s].map(item => {
        if (repeated.has(item)){
            repeatedArr.push(item)
        } else {
            repeated.add(item);
        }
    })
    
    return [...s].filter(item => !repeatedArr.includes(item)).sort().join('');
}

3. 괜찮아 보였던 풀이 방법 (참고할 만한 풀이):

중복되지 않는 문자를 찾기 위해서,
문자의 indexOf와 lastIndexOf가 동일하면 됨

function solution(s) {
    return [...s].filter((item, idx) => s.indexOf(item) === s.lastIndexOf(item)).sort().join('')
}
profile
삐약

0개의 댓글