🗃️javascript/프로그래머스

중복된 문자 제거(Lv.0)[set()출력방법 및 set의 추가기능들]

하얀성 2023. 1. 6. 16:16

 

<문제 설명>

 

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


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

입출력 예my_stringresult
"people" "peol"
"We are the world" "We arthwold"

입출력 예 설명

입출력 예 #1

  • "people"에서 중복된 문자 "p"와 "e"을 제거한 "peol"을 return합니다.

입출력 예 #2

  • "We are the world"에서 중복된 문자 "e", " ", "r" 들을 제거한 "We arthwold"을 return합니다.

<제출답안>

function solution(my_string) {
    let newArr = my_string.split("")
    let mySet = new Set();
    for(let i=0; i<my_string.length; i++){
        mySet.add(newArr[i]);
    }
    let print = [...mySet]

    return print.join("")
}​

 

위의 내 코드는 반복문을 통해 my_string의 요소들을 하나씩 집어넣어 Set객체를 구성했다.

하지만....

아래 코드처럼 간단하게 가능한 것이었다.

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

 

아래처럼 이렇게 [ ]로 감싸지 않으면 값이 출력이 안됨.
그냥 [...Set()]을 통해 Set의 요소값들의 배열을 출력한다고 알고 있어야 될듯.

function solution(my_string) {
    return new Set(my_string);
}


<join()빼고 출력해본 Set()객체>

function solution(my_string) {
    return [...new Set(my_string)]; // set출력방법
}

ㅡㅡㅡ> Set객체의 값들을 요소로 하는 배열을 출력하라

"people"
기댓값 "peol"
실행 결과 실행한 결괏값 ["p","e","o","l"]이 기댓값 "peol"과 다릅니다.
테스트 2
입력값 "We are the world"
기댓값 "We arthwold"
실행 결과 실행한 결괏값 ["W","e"," ","a","r","t","h","w","o","l","d"]이 기댓값 "We arthwold"과 다릅니다.

Set 객체

Set 객체는 ES6에서 등장한 중복을 제거한 값들의 집합이다.

 

Set 객체 선언

//new Set([iterable]);
let mySet = new Set();

 

Set 객체 사용

특정 요소 추가: add

Set 객체에 주어진 값을 갖는 새로운 요소를 추가

//Set.add(value)
mySet.add(1);		// Set { 1 }
mySet.add(5);		// Set { 1, 5 }
mySet.add('hi');	// Set { 1, 5, 'hi' }

 

특정 요소 확인: has

Set 객체에 주어진 값을 갖는 요소가 있는지 확인 (boolean)

// Set { 1, 5, 'hi' }
//Set.has(value)
mySet.has(1);		// true
mySet.has(3);		// false
mySet.has('hi');	// true

 

특정 요소 제거: delete

Set 객체에서 주어진 값을 갖는 요소를 제거

// Set { 1, 5, 'hi' }
//Set.delete(value)
mySet.delete('hi');	// Set { 1, 5 }
mySet.delete(1);	// Set { 5 }

 

모든 요소 제거: clear

Set 객체에서 모든 요소를 제거

// Set { 1, 5, 'hi' }
//Set.clear()
mySet.clear()	// Set { }

 

요소의 개수 반환: size

Set 객체 내에 있는 요소들의 개수를 반환

// Set { 1, 5, 'hi' }
//Set.size
mySet.size	// 3

출처:https://miiingo.tistory.com/323