본문 바로가기
Algorithm/JavaScript

[basics] 중복 문자 제거

by _sweep 2021. 12. 6.

자바스크립트 알고리즘 문제풀이 강의를 듣고 정리한 내용입니다.

 

 

 

 

📋 문제

소문자로 이루어진 문자열이 입력되면 중복된 문자를 제거하고 출력한다. 이때, 문자열의 각 문자는 원래 문자열의 순서를 유지한다.

 

 

👉 입력

소문자로 이루어진 문자열이 입력된다.

 

 

👈 출력

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

 

 

💡 사용된 개념

String.indexOf()

String 객체에서 주어진 값과 일치하는 첫번째 인덱스를 반환한다.

일치하는 값이 없으면 -1을 반환한다.

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf

 

String.prototype.indexOf() - JavaScript | MDN

indexOf() 메서드는 호출한 String 객체에서 주어진 값과 일치하는 첫 번째 인덱스를 반환합니다. 일치하는 값이 없으면 -1을 반환합니다.

developer.mozilla.org

 

 

📝 풀이

 

<script>
    function solution(s) {
        let answer = "";
        for (const a of s) {
            if (answer.indexOf(a) === -1) answer += a;
        }
        return answer;
    }
    console.log(solution("ksekkset"));
</script>

 

주어진 문자열들의 문자를 순회한다.

answer에 해당 문자열이 없으면 indexOf()의 결과는 -1이 된다.

이 조건에 만족하면 빈 문자열인 answer에 해당 문자를 추가해나간다.

 

이후 이미 answer에 있는 문자가 들어온다면 indexOf는 answer에서의 해당 문자의 인덱스를 반환하므로 -1이 될 수 없다.

 

 

 

 

 

'Algorithm > JavaScript' 카테고리의 다른 글

[프로그래머스] 신규 아이디 추천  (0) 2021.12.06
[basics] 중복 단어 제거  (0) 2021.12.06
[basics] 가운데 문자 출력  (0) 2021.12.06
[basics] 대소문자 변환  (0) 2021.12.06
[basics] 가장 긴 문자열  (0) 2021.12.06

댓글