알고리즘, CS

[프로그래머스 Lv. 0] 중복된 문자 제거

차돌박이츄베릅 2023. 6. 14. 16:57

1. 문제

레벨0도 어려워서 정답률 85%대 문제로 난이도 하향조정했다.

https://school.programmers.co.kr/learn/courses/30/lessons/120888

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

2. 나의 풀이

replace랑 정규식 써먹어보고 싶었는데.. 도저히 안되길래 오늘도 for문과 함께 했다..

알고리즘 특강에서 배웠던 삽입 정렬이 생각나서 그런 느낌으로 풀어봤음

function solution(my_string) {
    var answer = '';
    str = my_string;
    max = str.length;
    let result = str[0];
    
    for (let i = 1; i < max ; i++) {
        let targetStr = str[i];
        let isSame = false;
        
        for(let j = i-1; j >= 0; j-- ) {
            console.log(targetStr,' vs ',str[j])
            if(str[j] == targetStr) {
                isSame = true;
            }
        }
        
        if(isSame == false) {
            result += targetStr;
        }
    }
    
    answer = result;
    
    return answer;
}

 

 

3. 다른 사람 풀이

  • indexOf 이용 : indexOf가 중복된 문자열이라도 첫번째 요소만 반환되는걸 이용해서 중복되는 값 판별함
  • include 이용: 새로운 변수에 반복문으로 한 글자씩 집어넣음. 이 때, include를 이용해서 이미 있는 문자면 안넣도록 함

 

4. 배운 점