import java.util.*;
class Main {
public String solution(String str) {
String answer = "";
//contains()
List<Character> list = new ArrayList<>();
char[] arr = str.toCharArray();
for(char x : arr) {
if(!list.contains(x)) list.add(x);
}
for(char x : list) {answer += x;}
//indexOf와 charAt을 활용한 for문
for(int i = 0; i<str.length();i++) {
if(i == str.indexOf(str.charAt(i))) {
answer += str.charAt(i);
}
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(T.solution(str));
}
}
indexOf가 갖는 가장 큰 특징중 하나는 그 찾는문자의 가장 빠른 index만을 갖는다는 것이다.
예를들어) String str = kakaooo에서
str.indexOf('k')는 0
str.indexOf('a')는 1
str.indexOf('o')는 4 라는것이다.
즉, 이점을 활용하면, indexOf와 for문의 i가 같을때 빼고는!
모두 중복 문자라는 것이다! (언제쯤 이렇게 바로바로 생각해낼수 있을까...)
따라서, if(i == str.indexOf(str.charAt(i))) 일때 빼고는 그 뒤로는 중복문자라는 것이다.
indexOf의 특성 : 해당문자의 가장 앞 index를 갖는다.
이 점을 외워두고 활용하자!