튜플
문제 링크
문제 요약
제한사항
- s의 길이는 5 이상 1,000,000 이하입니다.
- s는 숫자와 '{', '}', ',' 로만 이루어져 있습니다.
- 숫자가 0으로 시작하는 경우는 없습니다.
- s는 항상 중복되는 원소가 없는 튜플을 올바르게 표현하고 있습니다.
- s가 표현하는 튜플의 원소는 1 이상 100,000 이하인 자연수입니다.
- return 하는 배열의 길이가 1 이상 500 이하인 경우만 입력으로 주어집니다.
output
- s가 표현하는 튜플을 배열에 담아 return
해결방법
- 우선 주어진 문자열을 배열로 나누자
- 가장 앞과 뒤의
{{
, }}
를 삭제하고
- 정규식을 이용해서
},{
를 기준으로 나누고...
- 내부에서
,
를 기준으로 나누면 될 듯
- 나누어진 배열을 길이 순으로 정렬한다.
Set
에 요소들을 순서대로 때려박는다
Set
을 배열로 변경 후 return
한다
function solution(s) {
const set = new Set()
const re = new RegExp('},{', 'g')
const sArr = s
.slice(2, s.length - 2)
.split(re)
.map((s) => s.split(',').map((ele) => parseInt(ele)))
.sort((a, b) => a.length - b.length)
sArr.forEach((sa) => {
sa.forEach((sb) => {
set.add(sb)
})
})
return Array.from(set)
}