중복된 문자 제거

nacSeo (낙서)·2024년 3월 11일
0

프로그래머스

목록 보기
120/169

문제 설명

문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.

제한사항

1 ≤ my_string ≤ 110
my_string은 대문자, 소문자, 공백으로 구성되어 있습니다.
대문자와 소문자를 구분합니다.
공백(" ")도 하나의 문자로 구분합니다.
중복된 문자 중 가장 앞에 있는 문자를 남깁니다.

나의 코드

class Solution {
    public String solution(String my_string) {
        String answer = "";
        for(int i=0; i<my_string.length(); i++) {
            if(my_string.indexOf(my_string.charAt(i)) == i) {
                answer += my_string.charAt(i);
            }
        }
        return answer;
    }
}

다른 사람 코드

import java.util.*;
class Solution {
    public String solution(String my_string) {
        String[] answer = my_string.split("");
        Set<String> set = new LinkedHashSet<String>(Arrays.asList(answer));

        return String.join("", set);
    }
}

Set 활용

느낀 점

indexOf()함수를 사용하여 만약 i번째 값이 현재 인덱스가 아니라 그 전 인덱스에 존재했다면, 값이 다르므로 if조건문에 해당하지 않아 answer에 추가되지 않는다. 즉, 이미 나왔던 중복된 값은 무시한다는 것!
다른 사람 코드에서는 중복을 허용하지 않는 Set을 활용하여 문제를 풀어냈다.

profile
백엔드 개발자 김창하입니다 🙇‍♂️

0개의 댓글