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

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

by 아찌방 2025. 3. 7.

 

 

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

 

프로그래머스

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

 

 

주어진 n까지의 수로 만들 수 있는 길이 5의 조합을 일단 다 구합니다.

 

그리고 이 조합을 돌리면서 주어진 리스트 q와 비교합니다.

 

이때 시스템 결과 (비밀번호와 현재 조합과 일치하는 개수)가 불일치하면 flag를 False로 변경 후 break합니다.

 

모두 일치했으면 count를 올려줍니다.

 

 

 

 

다음에 또 봐요

 

 
728x90