(Kotlin) 프로그래머 Lv. 2튜플

https://school.programmers.co.kr/learn/courses/30/lessons/64065


쉬운 목차

문제




암호

class Solution {
    fun solution(s: String): IntArray {
        var answer = intArrayOf()
        val tuple = s.split("},")
        var temp: Array<String> = arrayOf()


        for (i in tuple){
            var str = i.replace("{", "").replace("}","")
            temp = temp.plus(str)
        }

        temp.sortBy { it.length }

        for (i in temp){
            for (j in i.split(",")){
                if (!
answer.contains(j.toInt())) answer = answer.plus(j.toInt()) } } return answer } }

설명

입력 값의 순서가 중요하지 않더라도 결과 값, 즉 튜플에는 순서가 분명히 존재합니다.

그런 다음 순서에 따라 입력 값 배열의 길이와 내부 값이 결정됩니다.

예를 들어

입력 값: “{{2},{2,1},{2,1,3},{2,1,3,4}}”

출력 값: (2, 1, 3, 4)

입력을 {2} , {2,1}, {2,1,3}, {2,1,3,4}의 네 가지 배열로 분할할 수 있습니다.
배열의 크기가 커질수록 여러 개의 튜플 값을 저장할 수 있고 이전 값을 먼저 저장할 수 있다는 규칙을 볼 수 있다.
따라서 입력 값은 배열로 슬라이스되고 각 배열의 길이별로 정렬됩니다.

각 배열의 내부 값을 결과 배열 답변과 비교하여 답변에 값이 없으면 추가합니다.

아이디어 자체는 간단했지만 입력을 여러 배열로 분할하는 방법을 알아내는 데 시간이 걸렸습니다.