[algorithm] 중복문자제거

Ho-eng·2023년 4월 15일
0

❓ 중복문자제거


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

  • 입력설명

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

    첫 줄에 중복문자가 제거된 문자열을 출력합니다.
  • 입력예제 1

    ksekkset

  • 출력예제 1

    kset


❗ 문제 풀이

내 풀이

<html>
  <head>
    <meta charset="UTF-8" />
    <title>출력결과</title>
  </head>
  <body>
    <script>
      function solution(str) {
        //문자열을 순회하면서 하나하나 저장한다
        //근데 조건문으로 같은 문자열이 존재하면 패스시킨다
        //한마디로 저장하는 조건을 같은 문자열이 존재하지 않을떄만 넣자

        let answer = ""

        for (let i of str) {
          if (!answer.includes(i)) {
            answer += i
          }
        }

        return answer
      }

      let str = "ksekkset"
      console.log(solution(str))
    </script>
  </body>
</html>
  1. answer이란 변수를 하나 선언하고 빈문자열을 할당한다.
  2. 문자열 순환을 돌면서,
    answer에 문자열을 담는데, 같은 문자열이 없는 경우에만 담도록 조건문을 걸어준다.
  3. answer을 리턴하면 끗.

정답 소스

<html>
    <head>
        <meta charset="UTF-8">
        <title>출력결과</title>
    </head>
    <body>
        <script>
            function solution(s){  
                let answer="";
                //console.log(s.indexOf("K"));
                for(let i=0; i<s.length; i++){
                    //console.log(s[i], i, s.indexOf(s[i]));
                    if(s.indexOf(s[i])===i) answer+=s[i];
                }
                return answer;
            }
            console.log(solution("ksekkset"));
        </script>
    </body>
</html>
  • indexOf()에 접근하여 문자열이 같은지 비교했다.

❓indexOf()
indexOf()는 자바스크립트 문자열 메소드 중 하나로, 문자열에서 특정 문자열의 인덱스를 반환한다.
문자열이 존재하는 경우, 시작위치의 index를 return하고,
문자열이 존재하지 않는 경우, -1을 return한다.

//대충 사용설명서
str.indexOf(searchValue)

//예시
const str = "Hello, world!";
console.log(str.indexOf("world")); // 7
console.log(str.indexOf("foo")); // -1
profile
매일 '어제의 나와 오늘의 나는 무엇이 다를까?'를 고민하는 김호엥입니다.

0개의 댓글