const solution = (s) => {
const answer = []; // 결과값 배열 선언
while (s !== '') { // 문자열 s가 빈 문자열이 될 때까지 반복
if (s.indexOf(s[0]) === s.lastIndexOf(s[0])) { // 해당문자가 한 번만 등장한 경우
answer.push(s[0]); // 해당 문자를 결과값 배열에 추가
}
const r = new RegExp(s[0], 'g'); // 문자열 s의 첫번째 문자를 global 정규식으로 검색할 정규식 객체 생성
s = s.replace(r, ''); // 문자열 s에서 (한번만 등장한) 첫번째 문자를 전역 검색하여 모두 제거
}
return answer.sort().join(''); // 결과값 배열을 정렬하고 문자열로 변환하여 반환
}
▶ if (s.indexOf(s[0]) === s.lastIndexOf(s[0])) → 한 번만 등장한 문자를 의미한다!!!
▶ g는 global을 의미하며, s[0] 해당하는 모든 문자를 의미한다.
'프로그래머스(자바스크립트) > LV.0(자바스크립트)' 카테고리의 다른 글
이진수 더하기 → toString(2): 이진수 문자열로 바뀌줌!! (0) | 2023.03.02 |
---|---|
숨어있는 숫자의 덧셈(2) → 아이디어가 매우 중요 + split (0) | 2023.03.01 |
진료순서 정하기 → 신박한 풀이 ★ ★ ★ (0) | 2023.03.01 |
k의 개수 → number타입을 String타입으로 변환 (0) | 2023.03.01 |
가까운 수 → sort를 오버라이딩 + key와 value형태로 저장 안해도 된다!!! (0) | 2023.03.01 |