반응형
문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ my_string ≤ 110
- my_string은 대문자, 소문자, 공백으로 구성되어 있습니다.
- 대문자와 소문자를 구분합니다.
- 공백(" ")도 하나의 문자로 구분합니다.
- 중복된 문자 중 가장 앞에 있는 문자를 남깁니다.
입출력 예
my_stringresult
입출력 예 설명
입출력 예 #1
- "people"에서 중복된 문자 "p"와 "e"을 제거한 "peol"을 return합니다.
입출력 예 #2
- "We are the world"에서 중복된 문자 "e", " ", "r" 들을 제거한 "We arthwold"을 return합니다.
class Solution {
public String solution(String my_string) {
String answer = "";
StringBuilder sb = new StringBuilder();
for (char c : my_string.toCharArray()) {
if (sb.indexOf(String.valueOf(c)) == -1) {
sb.append(c);
}
}
answer = sb.toString();
return answer;
}
}
- 빈 문자열 answer와 StringBuilder 객체 sb를 초기화한다.
StringBuilder 객체는 문자열을 저장하기 위해 선언한다. - for 반복문을 사용하여 입력 문자열 my_string을 char 배열로 변환하고
한 글자씩 순회하면서 char c 에 입력 (for-each) - 각 문자 c에 대해서, sb.indexOf(String.valueOf(c))를 사용하여
sb 문자열 내에서 해당 문자 c의 인덱스를 찾는다.
만약 false로 인덱스가 -1이라면 (sb 내에 해당 문자가 존재하지 않는 경우), 조건문이 참이 된다. - 조건문이 참이면, 해당 문자 c를 sb에 sb.append(c)를 사용하여 추가한다.
- 반복이 완료되면, sb를 문자열로 변환하여 answer에 할당한다.
sb.toString()을 사용하여 StringBuilder 객체 sb를 문자열로 변환해준다. - 최종적으로 answer를 반환한다.
반응형