Loading...
본문 바로가기
👥
총 방문자
📖
0개 이상
총 포스팅
🧑
오늘 방문자 수
📅
0일째
블로그 운영

여러분의 방문을 환영해요! 🎉

다양한 개발 지식을 쉽고 재미있게 알려드리는 블로그가 될게요. 함께 성장해요! 😊

PS/프로그래머스

[프로그래머스][조합] 비밀코드해독

by 꽁이꽁설꽁돌 2025. 6. 28.
728x90
반응형
     

목차

     

    문제

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

     

    프로그래머스

    SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

    programmers.co.kr

     

    문제 구현 방향

    이 문제는 범위가 적기 때문에 브루트포스로 가능하다. 따라서 모든 조합을 이용해서 풀 수 있다.

    이때 주의할 점은 js로 풀 경우 set을 이용해야 시간 초과가 나지 않는다.

     

    코드 구현

    let p = [];
    let answer = 0;
    
    function combi(board, idx, len, q, ans) {
        if (p.length === len) {
            const s = new Set(p);
    
            for (let i = 0; i < q.length; i++) {  
                let cnt = 0;
                for (let j = 0; j < q[i].length; j++) {
                    if (s.has(q[i][j])) cnt++;
                }
                if (cnt !== ans[i]) return;
            }
    
            answer++;
            return;
        }
    
        for (let k = idx; k < board.length; k++) {
            p.push(board[k]);
            combi(board, k + 1, len, q, ans);
            p.pop();
        }
    }
    
    function solution(n, q, ans) {
        answer = 0; 
        p = [];      
    
        const board = Array.from({ length: n }, (_, idx) => idx + 1);
        const len = q[0].length;
    
        combi(board, 0, len, q, ans);
        return answer;
    }
    반응형