[Coding] 중복된 문자 제거

Jason·2024년 2월 14일
0

Coding problems

목록 보기
6/7
post-thumbnail

Platform

programmers


Description

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

입출력 예 #1
"people"에서 중복된 문자 "p"와 "e"을 제거한 "peol"을 return합니다.
입출력 예 #2
"We are the world"에서 중복된 문자 "e", " ", "r" 들을 제거한 "We arthwold"을 return합니다.

Solution

import java.util.LinkedHashSet;

class Solution {
    public String solution(String my_string) {
        
        // StringBuilder 를 사용해본다.
        StringBuilder answer = new StringBuilder();
        
        // 중복 허용이 안돼고, 결과값이 순서대로 추가되는 LinkedHashSet 을 사용한다.
        LinkedHashSet<Character> set = new LinkedHashSet<>();
        
        // LinkedHashSet 에 my_string 의 char 를 중복 없는 값으로 넣는다.
        for (char c : my_string.toCharArray()) {
            set.add(c);
        }
        
        // StringBuilder 에도 넣는다.
        for (char c : set) {
            answer.append(c);
        }
        
        // String 타입으로 변환한다.
        return answer.toString();
        
    }
}

Other solution

import java.util.*;
import java.util.stream.Collectors;

class Solution {
    public String solution(String my_string) {
        
        //stream
        return Arrays.stream(myString.split(""))
             		 .distinct()
		             .collect(Collectors.joining());
    }
}

TIL - HashSet과 LinkedHashSet: 특징과 차이점

  • HashSet
    중복 허용 안함
    순서 보장 안함
    빠른 접근 속도
  • LinkedHashSet
    중복 허용 안함
    순서 보장
    빠른 접근 속도
profile
어제보다 매일 1% 성장하고 있습니다.

0개의 댓글