JAVA 공부

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

hakstroy 2024. 11. 13. 09:52

 

※ 문제 풀기에 앞서...

 : 문제 풀기에 방법이 생각나지 않아 검색을 하여 풀었습니다. 해당 문제를 풀기 위한 방법으로 여러가지가 나왔는데 설명해드리겠습니다. 

 

Java에서 String은 한번 생성 되면 내용을 바꿀 수 없다.

 

1. StringBuilder 활용 

 : String으로 되어있는 문자열을 합칠 수 있는 기능.

ex) String a = "안" + "녕" --> "안녕" 출력  

 -- 해당 방식으로 하면 이전 문자열은 쓰레기값으로 처리되어 문자가 많아질수록 메모리 낭비가 심해진다..

ex) StringBuilder sb = new StringBuilder()

 --> sb.append("안") sb.append("녕") 

 --> sb.toString() : "안녕"   

새로운 객체를 생성하는 것이 아닌 append로 뒤에 추가해주는 것이라 메모리 관리에 더 효율적이다..

 

 

 

문제 설명

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

 

 

 

제한 사항

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

 

 

입출력 예

 

입출력 예 설명

 

입출력 예 #1

"people"에서 중복된 문자 "p"와 "e"을 제거한 "peol"을 return합니다.

입출력 예 #2

"We are the world"에서 중복된 문자 "e", " ", "r" 들을 제거한 "We arthwold"을 return합니다.

 

나의 풀이

※ StringBuilder sb = new StringBuilder()

class Solution {
    public String solution(String my_string) {
        String answer = "";
        StringBuilder result = new StringBuilder();
        
        for(int i=0; i<my_string.length(); i++){
            char c = my_string.charAt(i);
            if(result.indexOf(String.valueOf(c)) == -1){
                result.append(c);
            }
        }
        return result.toString();
    }
}

 

 

 

# 게을렀던 나 자신 반성하며 다시 하나하나 나아가보자..늦은 나이..신경쓰지말고 나의 발전에 노력하고 힘을 쓰자 화이팅!