https://school.programmers.co.kr/learn/courses/30/lessons/64065
프로그램 제작자
코드 중심 개발자를 고용하십시오. 배치 기반 위치 매칭. 프로그래머의 개발자별 프로필에 가입하고 기술 호환성이 좋은 회사와 연결하십시오.
Programmer.co.kr
문제
암호
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}의 네 가지 배열로 분할할 수 있습니다.
배열의 크기가 커질수록 여러 개의 튜플 값을 저장할 수 있고 이전 값을 먼저 저장할 수 있다는 규칙을 볼 수 있다.
따라서 입력 값은 배열로 슬라이스되고 각 배열의 길이별로 정렬됩니다.
각 배열의 내부 값을 결과 배열 답변과 비교하여 답변에 값이 없으면 추가합니다.
아이디어 자체는 간단했지만 입력을 여러 배열로 분할하는 방법을 알아내는 데 시간이 걸렸습니다.