본문 바로가기

프로그래머스/구현

[구현] 프로그래머스 '불량 사용자' - js

반응형

1. 문제

https://school.programmers.co.kr/learn/courses/30/lessons/64064

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

2. 코드

function solution(user_id, banned_id) {
    const ch = new Array(user_id.length).fill(0);
    const set = new Set(); 
    
    const isPossible = (uId, bId) => {
        if (uId.length !== bId.length) return false;
        for (let i = 0; i < uId.length; i++) {
            if (bId[i] !== '*' && uId[i] !== bId[i]) return false;
        }
        return true;
    }
    
    const check = (idx, cnt, possible) => {
        if (cnt === banned_id.length) 
            set.add(possible.split(' ').sort().join(''));
        if (idx >= banned_id.length) return;
        
        for (let i = idx; i < banned_id.length; i++) {
            for (let j = 0; j < user_id.length; j++) {
                if (ch[j] === 1) continue; 
                if (!isPossible(user_id[j], banned_id[i])) continue; 
                
                ch[j] = 1;
                check(i+1, cnt+1, possible + ' ' + user_id[j]); 
                ch[j] = 0; 
            }
        }
    }
    
    check(0, 0, ''); 
    
    return set.size;
}

 

이해에 참고한 블로그)

https://bokjiho.medium.com/javascript-algorithm-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%B6%88%EB%9F%89-%EC%82%AC%EC%9A%A9%EC%9E%90-lv-2-242846ea2fd9

 

[Javascript/Algorithm] 프로그래머스 — 불량 사용자 (Lv.2)

#순열 #조합

bokjiho.medium.com

 

이것이야말로 빡구현 문제라고 할 수 있겠다. 요즘 코테에서 자주 나오는 문제... 어렵지만 빡구현 문제 타파를 위해 앞으로 빡구현 문제들 위주로 준비해야겠다! 그래도 너무 어렵쟈나~~!! ㅠㅠ 시간안에 어케 푸냐구ㅠㅠㅋㅋㅋ

 

복기

6/24
반응형