。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

ㅋㅌ

중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return

quarrrter 2023. 6. 28. 23:14

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

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

 

 

위의 코드에서는 indexOf 메소드를 사용하여 중복을 확인합니다. indexOf 메소드는 문자열에서 특정 문자 또는 문자열이 처음으로 등장하는 인덱스를 반환하며, 등장하지 않을 경우 -1을 반환합니다.

주어진 문자열 my_string을 순회하면서 각 문자를 확인하고, answerBuilder에 해당 문자가 이미 존재하지 않는 경우에만 추가합니다.

최종적으로 answerBuilder.toString()을 호출하여 문자열로 변환한 후 반환합니다.

이제 주어진 문자열 my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 반환할 수 있습니다. 예를 들어, my_string이 "abbcccdd"인 경우, 중복된 문자 'b', 'c'와 'd'가 제거되고 "abcd"가 반환됩니다.

 


answerBuilder.indexOf(String.valueOf(currentChar))는 answerBuilder 문자열 내에서 특정 문자 currentChar의 인덱스를 검색하는 것을 의미합니다.

indexOf 메소드는 문자열에서 특정 문자 또는 문자열이 처음으로 등장하는 인덱스를 반환합니다.
여기서 String.valueOf(currentChar)를 사용하여 currentChar 문자를 문자열로 변환하고, answerBuilder.indexOf 메소드에 해당 문자열을 전달합니다.

answerBuilder.indexOf(String.valueOf(currentChar))의 반환 값은 다음과 같습니다:

currentChar 문자가 answerBuilder에 존재하지 않는 경우, -1을 반환합니다.
currentChar 문자가 answerBuilder에 존재하는 경우, 해당 문자가 처음으로 등장하는 인덱스를 반환합니다.
따라서 answerBuilder.indexOf(String.valueOf(currentChar)) == -1은 answerBuilder 문자열에 currentChar 문자가 없는지를 확인하는 조건문입니다. currentChar 문자가 answerBuilder에 존재하지 않는 경우에만 조건이 참이 되어 해당 문자를 answerBuilder에 추가합니다.

즉, 위의 코드는 answerBuilder에 이미 존재하지 않는 문자만 추가하고 중복을 제거하는 기능을 수행합니다.

'ㅋㅌ' 카테고리의 다른 글

문자열 정렬하기  (0) 2023.07.01
공백으로 구분하기 2  (0) 2023.06.30
대소문자출력하기  (0) 2023.06.27
문자열 정렬하기 (1)  (0) 2023.06.26
Math 클래스  (0) 2023.06.24