(알고리즘) 중복문자 제거

호두파파·2022년 1월 19일
0

알고리즘 연습

목록 보기
32/60


입력설명

첫 줄에 문자열이 입력된다.

출력설명

첫 줄에 중복문자가 제거된 문자열을 출력한다.

입력예제

ksekkkset

출력예제

kset


문제풀이

가끔 중복을 제거해야하는 상황이 있다. for문을 돌려서 인덱스 요소를 각자 비교하면서 중복을 확인하는 방법도 있지만, Set을 사용하면 더욱 빠르고 간단하게 중복을 제거할 수 있다.

let num = [2, 1, 3, 21, 3, 4, 5, 1, 2];
let uniqueNum = [...new Set(num)];
console.log(unuqueNum) // output: [2, 1, 3, 31, 4, 5];
// 문자열에서도 똑같이 기능한다. 

Set은 비순차적으로 저장할 수 있는 순열 구조로 보통 중복을 제거하거나 특정 값을 포함하고 있는지 확인할 때 사용한다.

내 문제풀이

function solution(s) {
  const conversionedArr = s.split('');
  const removeDuplicationedArr = [...new Set(conversionedArr)];
  return removeDuplicationedArr.join('');
}


[참고] concat 함수를 사용해서 중복없이 배열합치기

let a;
const a1 = [1, 2, 3];
const a2 = [3, 4, 5, 6];

const merged = a1.concat(a2);
const unuque = mergfed.filter((item, pos) => merged.indexOf(item) === pos);

console.log(unique); // output [1, 2, 3, 4, 5, 6]

for 문을 이용한 문제 풀이

function solution(s) {
  let answer = '';
  for (let i = 0; i < s.length; i++) {
    if ( i === s.indexof(s[i])) answer += s[i]
  }
  return answer;
}

indexof를 사용해서 중복된 문자의 수 계산하기

function solutions(s) {
  let answer = 0;
  let pos = s.indexOf('k');
  while(pos === -1) {
    answer++;
    pos=s.indexOf('k', pos+1);
  }
  return answer;
}
profile
안녕하세요 주니어 프론트엔드 개발자 양윤성입니다.

0개의 댓글