자료구조 및 알고리즘/JavaScript Practice

JS Practice) 프로그래머스 : 중복된 문자 제거

Ryomi 2023. 3. 13. 09:27
728x90
반응형

 

중복된 문자 제거

문제설명

: 문자열 my_string 이 매개변수로 주어진다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을  return 하도록 solution 함수를 완성하라.

 

제한 사항

  • 1 ≤ my_string ≤ 110
  • my_string은 대문자, 소문자, 공백으로 구성되어 있습니다.
  • 대문자와 소문자를 구분합니다.
  • 공백(" ")도 하나의 문자로 구분합니다.
  • 중복된 문자 중 가장 앞에 있는 문자를 남깁니다.

 

입출력 예

my_string result
"people" "peol"
"We are the world" "We arthwold"

 

첫번째 접근

:  Set()은 유일한 값만 담을 수 있으므로 Set()에 해당 문자열을 전달해 중복된 문자열이 제거된 Set 객체를 만든다. 그리고 반복문을 돌며 객체 내 문자들을 합쳐 반환한다. 

function solution(my_string) {
    let str = new Set(my_string);
    let answer = '';
    for(let i of str){
        answer += i
    }
    return answer;
}

 

 

두번째 접근

: Set()을 이용해 중복된 문자는 제거했지만, 반복문을 사용하니 코드가 길어진 것 같다. 객체를 배열로 바꿔 reduce()함수를 쓰면 더 간단하게 코드를 작성할 수 있다고 생각했다. 

function solution(my_string) {
    let str = new Set(my_string);

    return [...str].reduce((acc, cur) => acc+cur)
}

 

 

solution

function solution(my_string) {
    return [...new Set(my_string)].join('');
}

(join()이 생각이 안났다...ㅜ)

728x90
반응형