문제
https://school.programmers.co.kr/learn/courses/30/lessons/64064
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
내 풀이
function solution(user_id, banned_id) {
const isVisited = Array.from({length:user_id.length}, ()=>false);
const arr = [];
let realArr = []
dfs(0)
function dfs(idx){
if(idx===banned_id.length){
realArr.push([...arr]);
return;
}
for(let i=0; i<user_id.length; i++){
if(!isVisited[i]&&check(user_id[i], banned_id[idx])){
isVisited[i]=true;
arr.push(user_id[i]);
dfs(idx+1);
arr.pop();
isVisited[i]=false
};
}
}
function check(userId, bannedId){
if(userId.length!==bannedId.length) return false;
for(let i=0; i<userId.length; i++){
if(bannedId[i]==='*') continue;
if(userId[i]!==bannedId[i]) return false;
}
return true;
}
realArr = realArr.map(arr => arr.sort().join());
const answer = new Set(realArr).size
return answer;
}
정리
문자열 정렬
- 오름차순
arr.sort()
- 내림차순
arr.sort((a,b)=>{
if(a<b) return 1;
if(a>b) return -1;
if(a===b) return 0;
})
숫자 정렬
- 오름차순
arr.sort((a,b)=>a-b)
- 내림차순
arr.sort((a,b)=>b-a)
참조
'Programmers' 카테고리의 다른 글
[프로그래머스] 게임 맵 최단거리 (JS) - DFS/BFS (0) | 2023.11.24 |
---|---|
[프로그래머스] 표 병합 - union find (1) | 2023.11.21 |
[프로그래머스] 수식 최대화 (JS) (1) | 2023.11.21 |
[프로그래머스] 튜플 (JS) (0) | 2023.11.20 |
[프로그래머스] 보석 쇼핑 (JS) - Map, 투포인터 (0) | 2023.11.20 |