Lv.0 - 한 번만 등장한 문자_01.01

송철진·2023년 1월 1일
0

문제 설명

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

제한사항
0 < s의 길이 < 1,000
s는 소문자로만 이루어져 있습니다.

입출력 예

sresult
"abcabcadc""d"
"abdc""abcd"
"hello""eho"

나의 코드

function solution(s) {
    s = s.split("")
    let obj = {}
    let arr = []
    for(let i in s){
        `${obj[s[i]]}` === "undefined" ? obj[s[i]] = 0 : obj[s[i]] += 1
    }
    for(let n in obj){
        if(obj[n] === 0) arr.push(n)
    }
    return arr.sort().join("")
}

풀이

문자열 s의 각 문자를 요소로 갖는 배열을 s에 재할당하고

s = s.split("") 
// s = ["a","b","c","a","b","c","a","d","c"]

배열 s의 요소를 key로, s의 요소의 중복 개수를 value로 갖는 객체 obj를 생성하고

let obj = {}
for(let i in s){
    `${obj[s[i]]}` === "undefined" ? obj[s[i]] = 0 : obj[s[i]] += 1
}
// obj = {"a":2, "b":1, "c":2, "d":0}

중복 개수가 0이면 그 key를 빈 배열 arr에 추가, 오름차순 정렬, join해서 반환한다

let arr = []
for(let n in obj){
    if(obj[n] === 0) arr.push(n)
}
// arr = ["d"]
return arr.sort().join("") // "d"
profile
검색하고 기록하며 학습하는 백엔드 개발자

0개의 댓글