{ , }로 처리 된 문자열을 split()으로 나눠주고, 중복되는 요소가 없도록 answer에 push()해서 처리해주었다. 전에 풀어봤던 문제라 쉽게 풀 수 있었다. 💃
function solution(s) {
let answer = [];
s = s.split('},{');
s = s.map(n => n.replace(/[{|}]/g, ''));
s = s.map(n => n.split(','))
s.sort((a, b) => a.length - b.length);
s.forEach(a => {
a.map(n => {
if(answer.includes(n) === false) answer.push(n);
});
});
return answer.map(Number);
}
정규 표현식, 또는 정규식은 문자열에서 특정 문자 조합을 찾기 위한 패턴이다.
// 정규 표현식 리터럴
const re = /ab+c/
// RegExp 객체의 생성자 호출
const re = new RegExp('ab+c')
regex.test(str)
: 문자열에 일치를 확인하고 true 또는 false를 반환한다.
str.match(regex)
: 모든 일치를 담은 배열을 반환하거나 null을 반환한다.
str.matchAll(regex)
: 캡처 그룹을 포함해서 모든 일치를 담은 반복기를 반환한다.
str.search(regex)
: 첫번째로 매치되는 인덱스를 반환하거나 -1를 반환한다.
str.replace(regex, newStr)
: 일치하는 부분을 탐색하고, 그 부분을 대체 문자열로 바꾼다.
str.replaceAll(regex, newStr)
: 일치하는 부분을 모두 탐색하고, 모두 대체 문자열로 바꾼다.
split(separator, limit)
: 정규 표현식 또는 문자열 리터럴을 사용해서 부분 문자열의 배열로 나눈다.
sort()
: 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따른다.
arr.sort([compareFunction])
includes()
: 배열이 특정 요소를 포함하고 있는지 판별하고 true 또는 false를 반환한다.
arr.includes(valueToFind[, fromIndex])