프로그래머스 튜플(문자열 다루기, forEach, map 배열 변경)

정말 정말 올만에 스스로 만족하는 풀이 ㅠㅠ

import java.util.*;

class Solution {
    fun solution(s: String): IntArray {
        val answer = ArrayList<Int>()
        
        // 문자열을 나누기, 주의!!! MutableList로 변환해줘야 직접 가공 가능
        var stringArr: MutableList<String> = s.split("},{").toMutableList()
        
        // 배열의 첫번째, 마지막 원소의 대괄호 제거
        stringArr[0] = stringArr[0].replace("{","")
        stringArr[stringArr.size-1] = stringArr[stringArr.size-1].replace("}","")
        
        // 나눠진 문자열 속 ',' 개수를 세어 배열에 담기
        var countArr = stringArr.map{s->s.filter { it == ',' }.count()}
        
        for( i in 0..countArr.size-1){
            // ',' 개수가 적은 순으로 인덱싱
            stringArr[countArr.indexOf(i)].split(",").forEach{s->
                val num = s.toInt() // String -> Int
                if(!answer.contains(num)) answer.add(num)
            }
        }
        
        
        // ArrayList를 IntArray형으로 변환
        return answer.toIntArray()
    }
}