250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(프로그래머스 JS)불량 사용자 본문
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/64064
const solution = (user_id, banned_id) => {
const list = [];
const answer = [];
const dfs = (index, map) => {
if(index === list.length){
if(map.size === list.length){
const string = [];
for(const [k, _] of map){
string.push(k);
}
answer.push(string.sort().join(""));
}
return;
}
for(let i = 0; i < list[index].length; i++){
if(!map.get(list[index][i])){
map.set(list[index][i], true);
dfs(index + 1, map);
map.delete(list[index][i]);
}
}
}
user_id.sort();
banned_id.sort();
for(let i = 0; i < banned_id.length; i++){
const bannedId = banned_id[i];
const candidates = [];
for(let j = 0; j < user_id.length; j++){
const userId = user_id[j];
const length = userId.length;
let keep = true;
if(bannedId.length !== userId.length){
continue;
}
for(let k = 0; k < length; k++){
if(bannedId[k] === "*"){
continue;
}
if(bannedId[k] !== userId[k]){
keep = false;
break;
}
}
if(keep){
candidates.push(userId);
}
}
candidates.sort();
list.push(candidates);
}
for(let i = 0; i < list[0].length; i++){
const map = new Map();
map.set(list[0][i], true);
dfs(1, map);
}
return [...new Set(answer)].length;
}
728x90
반응형
'프로그래머스 알고리즘 > KAKAO' 카테고리의 다른 글
(프로그래머스 KAKAO JS) 신고 결과 받기 (0) | 2022.02.05 |
---|---|
(프로그래머스 KAKAO JS)양과 늑대 (0) | 2022.02.05 |
(프로그래머스 KAKAO JS)호텔 방 배정 (0) | 2021.11.13 |
(프로그래머스 KAKAO JS)합승 택시 요금 (3) | 2021.10.25 |
(프로그래머스 KAKAO JS)징검다리 건너기 (0) | 2021.09.28 |