https://school.programmers.co.kr/learn/courses/30/lessons/388352#qna
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
코드 & 풀이
from itertools import combinations
def solution(n, q, ans):
possible_code = list(combinations(range(1, n + 1), 5))
total_cnt = 0
for code in possible_code:
make_code = True
for i in range(len(q)):
if len(set(code) & set(q[i])) != ans[i]:
make_code = False
break
if make_code:
total_cnt += 1
return total_cnt
일단 콤비네이션을 통해
1부터 n까지의 숫자 중 5개를 사용해
만들 수 있는 조합을 생성합니다.
그 조합과 q를 비교해서
ans와 일치하는지 확인합니다.
& 는 두 집합의 교집합을 반환하는데
len()을 붙였기 때문에 공통 원소의 수를 반환하게 되는 겁니다.
728x90
'프로그래머스 > Lv.2' 카테고리의 다른 글
기능 개발 - C++, Queue (0) | 2025.02.22 |
---|---|
2025 프로그래머스 코드챌린지 2차 예선 > 서버 증설 횟수 - Python, 구현 (0) | 2025.02.15 |
2025 프로그래머스 코드챌린지 1차 예선 > 지게차와 크레인 - Python, BFS (0) | 2025.02.12 |
2018 KAKAO BLIND RECRUITMENT > 파일명 정렬 - Python, 정규식 (1) | 2025.01.07 |
미로 탈출 - Python, BFS (0) | 2024.12.29 |