CodingTest :: 중복된 문자 제거 관련

김병철·2023년 2월 14일
0

codingTest

목록 보기
7/11

# CodingTest Exercise

# 중복된 문자 제거

# 링크

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

# 문제 설명

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

# 제한 사항

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

# 입출력 예

# 풀이

  • 문자열에 문자 하나씩 뽑고, 리스트에 해당 문자가 없을 때만 추가하는 방식
import java.util.*;
class Solution {
    public String solution(String my_string) {
        List<String> arr = new ArrayList();
        for (int i = 0; i < my_string.length(); i++) {
            if (!arr.contains(String.valueOf(my_string.charAt(i)))) {
                arr.add(String.valueOf(my_string.charAt(i)));
            }
        }
        return String.join("", arr);
    }
}
  • stream으로 변경 후 하나의 스트링으로 바꾸고, 중복을 제거 후 다시 String으로 변경하는 방식
import java.util.stream.Collectors;

class Solution {
    public String solution(String my_string) {
        return my_string.chars()
                .mapToObj(Character::toString)
                .distinct()
                .collect(Collectors.joining());
    }
}
  • 중복이 안되는 set의 특성을 활용하는 방식
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);
    }
}
profile
keep going on~

0개의 댓글