본문 바로가기
프로그래머스/Lv.2

2025 프로그래머스 코드챌린지 1차 예선 > 비밀 코드 해독 - Python, Combinations, & 연산

by 아찌방 2025. 2. 14.

 

 

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