https://programmers.co.kr/learn/courses/30/lessons/92342
combinations_with_replacement 를 활용해서 풀었다
나의 풀이
from itertools import combinations_with_replacement
from collections import Counter
def solution(n, info):
max_score = 0
answer = []
for i in combinations_with_replacement(range(11), n):
a_score, l_score = 0,0
cnt = Counter(i)
for i in range(11):
if info[10-i] == 0 and cnt[i] == 0:
continue
if info[10-i] >= cnt[i]:
a_score += i
else:
l_score += i
if max_score < (l_score - a_score) : # 스코어가 더 크다면
max_score = (l_score - a_score)
answer = cnt
elif max_score == (l_score - a_score) and max_score !=0: # 스코어가 같다면
if answer == [] :
answer = cnt
else:
for i in range(11):
if answer[i] == 0 and cnt[i] == 0:
continue
if answer[i] < cnt[i]:
answer = cnt
break
elif answer[i] > cnt[i]:
break
if answer == []:
return [-1]
else:
temp = answer
answer = [0]*11
for i in range(11):
answer[10-i] = temp[i]
return answer
'Programming > Programmers' 카테고리의 다른 글
[프로그래머스] 양과 늑대(Python) (0) | 2022.01.28 |
---|---|
[프로그래머스] 주차 요금 계산(Python) (0) | 2022.01.23 |
[프로그래머스] k진수에서 소수 개수 구하기 (Python) (0) | 2022.01.19 |
[프로그래머스] 신고 결과 받기 (Python) (0) | 2022.01.19 |
탑 프로그래머스 ..! (4) | 2022.01.13 |
댓글