CodeWars 스물 일곱 번째 문제
Updated:
Duplicate Encoder
static String encode(String word){
String replaceWord = "";
word = word.toUpperCase();
for(int i = 0 ; i < word.length(); i++) {
String letter = word.substring(i, i+1);
if(word.lastIndexOf(letter) == word.indexOf(letter)){
replaceWord +="(";
} else {
replaceWord += ")";
}
}
return replaceWord;
}
- 쉽다고 생각했는데… replaceAll 함수를 사용해서 하려고 하니 …”(“으로 처음 바꾸고 나중에 “)”바꾸려고 하면 처음 바꿨던 “(“에 대해서 오류가 발생했다. 또는 “)”나 “(“가 하나만 있는 경우 문제가 생겼다.
- 그래서 처음부터 순환하여 임의의 String에 하나씩 더해가려고 생각했다.
- 근데 문제는 중복된 문자에 대해서 어떻게 비교해야할지 애매했다. contain함수 쓰기엔 복잡해졌기 때문이다. 그래서 찾아보니 lastIndexOf랑 indexOf로 비교할 수가 있었다. 이거에 대해선 String 포스팅한 글에 추가해야겠다.