[BOJ] 1359 복권
Post
취소

[BOJ] 1359 복권

문제 요약 및 풀이

1359번: 복권

python itertools에는 너무나 좋은 것이 많다. ㅎㅎ

이 문제는 그냥 모든 경우를 탐색해도 된다. 그냥 빠르게 긁어버리자. (N,M이 8보다 작거나 같다. 경우 의 수가 8C4 정도가 최대다. 충분히 다 탐색할 수 있다.)

풀이 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from itertools import combinations

n, m, k = map(int,input().split())

ans = 0
all = [*combinations([i for i in range(n)], m)]  # 모든 경우의 수

for i in all:
  cnt = 0
  for j in range(m):
    if i[j] < m:  # 0 ~ m-1이 복권에 당첨되는 번호라고 가정한다.
      cnt+=1
  if cnt >= k:  # k 개 이상 맞은 경우
    ans += 1

print(ans / len(all))

This post is licensed under CC BY 4.0 by the author.