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;
}반응형
'PS > 프로그래머스' 카테고리의 다른 글
| [프로그래머스][그리디] n+1 카드게임 (4) | 2025.07.10 |
|---|---|
| [프로그래머스][백트래킹][이분탐색][조합] 주사위 고르기 (1) | 2025.07.04 |
| [프로그래머스][map] 충돌 위험 찾기 (0) | 2025.07.04 |
| [프로그래머스][bfs] 석유시추 (0) | 2025.07.02 |
| [프로그래머스][이분 탐색] 퍼즐 게임 챌린지 (0) | 2025.07.01 |