🔗 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/64065
✏️ 풀이
function solution(s) {
return s
.match(/\{(\d+,)*\d+\}/g)
.map(set => set.slice(1, -1).split(',').map(Number))
.sort((a, b) => a.length - b.length)
.map((cur, index, arr) => index ? cur.find(elem => !arr[index - 1].includes(elem)) : cur[0]);
}
s를 파싱하여 각 집합들을 배열로 변환하고 그 배열의 길이를 기준으로 오름차순 정렬한다.
그 다음 각 배열을 이전 배열과 비교하여 새롭게 추가된 원소로 바꾼다. (첫 번째 배열은 이전 배열이 없으므로 0번째 요소로 바로 바꿈)
'연습장 > 프로그래머스 문제풀이' 카테고리의 다른 글
[프로그래머스 Level 2] 괄호 변환 - JavaScript (0) | 2022.09.15 |
---|---|
[프로그래머스 Level 2] 메뉴 리뉴얼 - JavaScript (0) | 2022.09.15 |
[프로그래머스 Level 2] 주차 요금 계산 - JavaScript (0) | 2022.09.15 |
[프로그래머스 Level 2] 타겟 넘버 - JavaScript (0) | 2022.07.04 |
[프로그래머스 Level 2] k진수에서 소수 개수 구하기 - JavaScript (0) | 2022.06.13 |