문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.
1 ≤ my_string ≤ 110
my_string은 대문자, 소문자, 공백으로 구성되어 있습니다.
대문자와 소문자를 구분합니다.
공백(" ")도 하나의 문자로 구분합니다.
중복된 문자 중 가장 앞에 있는 문자를 남깁니다.
my_string result
"people" "peol"
"We are the world" "We arthwold"
"people"에서 중복된 문자 "p"와 "e"을 제거한 "peol"을 return합니다.
"We are the world"에서 중복된 문자 "e", " ", "r" 들을 제거한 "We arthwold"을 return합니다.
리듀스함수를 이용한 코드
function solution(my_string) {
//my_string을 spread 연산자로 배열을 만들어준다 .
//acc 의 초기값은 [] 이다
//배열에 cur(현재값) 이 포함되어있는지 확인한다
// 포함되어있으면 그대로 배열을 출력하고
// 포함되어있지않으면 현재 값을 push 한다.
let check = [...my_string].reduce((acc, cur ) =>
acc.includes(cur) ? acc : [...acc , cur]
,[]).join("")
// 출력
//['p']
//['p', 'e']
//['p', 'e' , 'o']
//['p', 'e' , 'o'] 중복문자인 p 는 출력되지않고 그전배열 그대로 출력
//['p', 'e' , 'o' , 'ㅣ']
//['p', 'e' , 'o' , 'ㅣ'] 중복문자인 e 는 출력되지않고 그전배열 그대로 출력
return check;
}
let my_string = 'people'
console.log(solution(my_string))
set 을 이용한 풀이
function solution(my_string) {
return [...new Set(my_string)].join('');
}
reduce 함수는 너무재밌는거같당 ,,,
set 은 중복제거니까 바로 되넹