January 09, 2021
제한사항
- s의 길이는 5 이상 1,000,000 이하입니다.
- s는 숫자와 ’{’, ’}’, ’,’ 로만 이루어져 있습니다.
- 숫자가 0으로 시작하는 경우는 없습니다.
- s는 항상 중복되는 원소가 없는 튜플을 올바르게 표현하고 있습니다.
- s가 표현하는 튜플의 원소는 1 이상 100,000 이하인 자연수입니다.
- return 하는 배열의 길이가 1 이상 500 이하인 경우만 입력으로 주어집니다.
Input
- 특정 튜플을 표현하는 집합이 담긴 문자열 s
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)
}