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 포스팅한 글에 추가해야겠다.