[프로그래머스] 한 번만 등장한 문자

zzzzzang_gu·2023년 3월 23일
0

알고리즘

목록 보기
9/10

나의 문제 풀이

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() 는 언제 사요 할지 감도 없었는데 많이 배운다...

profile
프론트엔드 개발자가 되겠습니다🔥

0개의 댓글