반응형
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
1부터 n까지 5개의 숫자로 만들 수 있는 정수 조합들을 모두 탐색하며 해결해야 하는 문제이다.
조합을 만든 뒤, q랑 비교해보며 ans 와 같은 결과가 나오는 조합이면 비밀 코드에 해당된다.
itertools를 활용하면 조합을 보다 쉽게 생성할 수 있다.
import itertools
def solution(n, q, ans):
# 배열의 전체 조합
arrs = itertools.combinations([i for i in range(1, n+1)], 5)
# 배열을 순회하며 탐색
res = 0
for arr in arrs:
# 현재 조합과 q를 비교하며 ans와 일치하는지 판별
for i in range(len(q)):
cur_q = q[i]
cnt = 0
for num in arr:
if num in cur_q:
cnt += 1
if ans[i] != cnt:
break
else:
res += 1
return res
반응형
'알고리즘 연습 > 백트래킹' 카테고리의 다른 글
[🥈3 / 백준 15656 / 파이썬] N과 M (7) (0) | 2022.04.05 |
---|---|
[🥈2 / 백준 15663 / 파이썬] N과 M (9) (0) | 2022.04.03 |
[🥈3 / 백준 15657 / 파이썬] N과 M (8) (0) | 2022.04.03 |
[🥈2 / 백준 15664 / 파이썬] N과 M (10) (0) | 2022.03.28 |
[🥈2 / 백준 15665 / 파이썬] N과 M (11) (0) | 2022.03.09 |