[알고리즘] 중복 문자 제거

hoonie·2021년 7월 26일
0

알고리즘

목록 보기
8/15
post-thumbnail

문제

소문자로 된 한개의 문자열이 입력되면 중복된 문자를 제거하고 출력하는 프로그램을 작성하 세요.
제거된 문자열의 각 문자는 원래 문자열의 순서를 유지합니다.

▣ 입력설명
첫 줄에 문자열이 입력됩니다.

▣ 출력설명
첫 줄에 중복문자가 제거된 문자열을 출력합니다.

▣ 입력예제 ksekkset
▣ 출력예제 kset


      function solution(letter) {
        let answer = "";
        for (let i = 0; i < letter.length; i++) {
          console.log(letter[i], i, letter.indexOf(letter[i]));
          if (i === letter.indexOf(letter[i])) {
            answer += letter[i];
          }
        }
        return answer;
      }

      let letter = "ksekkset";
      console.log(solution(letter));

설명

indexOf('문자') 란 해당 문자가 들어있는 첫번째 인덱스를 나타낸다. 즉, 중복된값이 여러개 있다고해도 처음으로 맞딱들이는 인덱스 번호를 나타낸다는것이다.

때문에, 풀이방법은 for문을 돌려 해당 문자열을 일단 탐색을한다.
그리고 console.log(letter[i], i, letter.indexOf(letter[i])); 로 탐색을 해보면

이런식으로 나오는데, index와 indexOf 값이 같은것만 답으로 출력을 하면된다.
고로, 조건문을 줘서 두 값이 같을때 나오는 문자들만 더해서 답으로 출력하면 된다.

0개의 댓글