CodeWars 예순 한 번째 문제

Updated:

Make the Deadfish swim

public static int[] parse(String data) {

    int[] result = new int[data.length() - data.replace("o", "").length()];
    int sum = 0;

    for(int i=0, j=0; i < data.length(); i++) {

        String letter = data.substring(i,i+1);

        if("i".equals(letter)) {
            sum++;
        } else if("d".equals(letter)) {
            sum--;
        } else if("s".equals(letter)) {
            sum *= sum;
        } else {
            result[j++] = sum;
        }
    }

    return result;
}
  • Best 코드의 경우 List로 선언해서 결과 값을 담은 후에 마지막에 배열로 변환시켜 반환하였다.

  • 그러나 나의 경우처럼 replace를 이용하여 처음부터 result의 개수를 선언하면 깔끔해진다.