[프로그래머스-Level 0] [JavaScript] 한 번만 등장한 문자 - 객체(Object) 활용

2023. 1. 17. 22:20알고리즘/프로그래머스 알고리즘 공부

반응형

[문제]

문자열 s가 주어집니다. 문자열 s는 'addeeffc' 이렇게 알파벳으로 구성되어 있는데, 여기에서 알파벳이 하나만 나오는 문자를 알파벳 순서로 정렬해서 출력하는 것이 문제입니다.

 

[알고리즘]

여러 가지 방법이 있지만 저는 객체와 변수를 활용했습니다. split('')를 활용하여 'abcd'를 'a', 'b', 'c', 'd' 형태로 분리할 수 있고 sort를 통해 알파벳 순서로 정렬할 수 있고 객체(object)의 키 값을 활용하였습니다.

 

[풀이]

아래 코드를 보시면 먼저 const str = {} 객체로 선언하고 arr 배열을 선언하여 문자열을 하나씩 분리해서 저장한 다음 정렬을 먼저 진행했습니다. 그 다음 forEach 함수를 돌려서 문자마다 몇 개가 나왔는지 카운트를 해줍니다. 그 다음 마지막 객체를 key별로 반복문을 돌려서 answer 변수 String에 더해주는 방식으로 풀이를 진행했습니다.

function solution(s) {
    var answer = '';
    const str = {};
    const arr = s.split('').sort();
    arr.forEach(elem => {
        if (str[elem] === undefined) str[elem] = 1;
        else str[elem]++;
    });
    
    for(const key in str) {
        if (str[key] === 1) {
            answer += key;
        }
    }
    
    return answer;
}

 

반응형