본문 바로가기
Algorithm/etc

[파이썬] 백준 27084 : 카드 뽑기 (골드5)

by 베짱이28호 2023. 6. 22.

[파이썬] 백준 27084 : 카드 뽑기 (골드5)

 

27084번: 카드 뽑기

리프는 카드 뽑기 놀이를 하고 있다. $N$장의 카드가 일렬로 나열되어 있고, 각각의 카드에는 양의 정수 1개가 적혀있다. 카드 뽑기 놀이는 다음과 같은 과정으로 진행된다. 1번째 카드부터 $N$번

www.acmicpc.net

 


문제

 


풀이

방향성 생각

각 숫자별로 최대 1번은 나와야 승리한다.

딕셔너리를 통해 각 숫자가 몇 번 나왔는지 확인하고 답을 계산한다.

 

n = int(input())
arr = list(map(int,input().split()))
table = {}
for i in arr:
    if i not in table:
        table[i] = 1
    else :
        table[i] += 1
answer = 1
for i in table.values():
    answer *= i+1
print((answer-1)%(10**9+7))

 

어떤 숫자가 k개 있으면 안뽑는 경우까지 추가해서 k+1개이다.

전부 안뽑는 경우 1개를 제외해주면 답을 구할 수 있다.

코멘트

백준 9375 패션왕 신해빈, 프로그래머스 레벨2 의상 문제랑 비슷한 문제

처음에는 케이스별로 필터걸어서 T/F 필터 걸어서도 풀려고 해봤는데 중복순열이라 필터 사이즈가 너무 커져서 불가능.

 

댓글