문제 설명
문자열 my_string이 매개변수로 주어집니다. my_string에서 중복된 문자를 제거하고 하나의 문자만 남긴 문자열을 return 하도록 solution 함수를 완성해주세요.
<<제안사항>>
1) 1 <= my_string <= 110
2) my_string은 대문자, 소문자, 공백으로 구성되어 있습니다.
3) 대문자와 소문자를 구분합니다.
4) 공백("")도 하나의 문자로 구분합니다.
5) 중복된 ㅁ누자 중 가장 앞에 있는 문자를 남깁니다.
내가 직접 짠 코드
class Solution {
public String solution(String my_string) {
String answer = "";
for (int i = 0; i < my_string.length(); i++) { //0부터 my_string의 길이까지 반복문을 돌림
if(my_string.indexOf(my_string.charAt(i)) == i) { //my_string의 i번째 값의 위치가 i와 같다면
answer += my_string.charAt(i); //answer에 더해준다
}
}
return answer;
}
}
개념 정리
indexOf 메소드 : 특정 문자나 문자열이 앞에서부터 처음 발견되는 인덱스를 반환하는 메소드
즉, 위의 코드와 연결지어 보자면
indexOf는 앞에서부터 발견되는 인덱스를 반환하기에, 문자열 안에 중복된 문자가 뒤에 나오게 된 경우는 if문에
성립이 되지 않는다.
'CodingTest' 카테고리의 다른 글
프로그래머스 - 369게임 (JAVA) (0) | 2023.03.23 |
---|---|
프로그래머스 - 모음 제거 (JAVA) (0) | 2023.03.23 |
프로그래머스 - 진료 순서 정하기 (JAVA) (0) | 2023.03.04 |
프로그래머스 - 문자열 정렬하기 1 (JAVA) (0) | 2023.03.02 |
프로그래머스 - 공던지기 (JAVA) (0) | 2023.03.01 |