문제
https://school.programmers.co.kr/learn/courses/30/lessons/64065
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
내 풀이
function solution(s) {
const answer = [];
s=s.replaceAll('{','[').replaceAll('}',']');
const parsed = JSON.parse(s);
parsed.sort((a,b)=>a.length-b.length);
for(let i=0; i<parsed.length; i++){
const item = parsed[i][0];
answer.push(item);
parsed.map(arr => {
const idx = arr.indexOf(item);
if(idx!==-1) arr.splice(idx,1);
return arr;
})
}
return answer;
}
다른 사람 풀이 참고
function solution(s) {
const answer = [];
s=s.replaceAll('{','[').replaceAll('}',']');
const parsed = JSON.parse(s);
parsed.sort((a,b)=>a.length-b.length);
parsed.forEach(arr => {
arr.forEach(item => {
if(!answer.includes(item)) answer.push(item);
})
})
return answer;
}
정리
내 첫번째 풀이처럼 splice를 해서 삭제연산을 할 필요가 없다.
includes를 사용해서 값이 answer에 들어있지 않은 경우 answer에 push해서 간단히 해결할 수 있다.
참조
'Programmers' 카테고리의 다른 글
[프로그래머스] 표 병합 - union find (1) | 2023.11.21 |
---|---|
[프로그래머스] 수식 최대화 (JS) (1) | 2023.11.21 |
[프로그래머스] 보석 쇼핑 (JS) - Map, 투포인터 (0) | 2023.11.20 |
[프로그래머스] 키패드 누르기 (JS) (0) | 2023.11.20 |
[프로그래머스] 표 편집 (JS) - 연결리스트 (0) | 2023.11.19 |