https://school.programmers.co.kr/learn/courses/30/lessons/72411?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
흠... 큰 고민하다가 결국 다른 블로그를 찾아본 문제다
파이썬에 combination 과 Counter라는 내장함수가 있는데
from itertools import combinations
print(list(combinations("ABCFG",2)))
# 출력
[('A', 'B'), ('A', 'C'), ('A', 'F'), ('A', 'G'), ('B', 'C'),
('B', 'F'), ('B', 'G'), ('C', 'F'), ('C', 'G'), ('F', 'G')]
이렇게 모든 조합의 경우의 수가 출력된다
from collections import Counter
counter = Counter(temp)
# 출력
Counter({('A', 'C'): 4, ('C', 'D'): 3, ('C', 'E'): 3, ('D', 'E'): 3, ('B', 'C'): 2, ('B', 'F'): 2, ('B', 'G'): 2, ('C', 'F'): 2,
('C', 'G'): 2, ('F', 'G'): 2, ('A', 'D'): 2, ('A', 'E'): 2, ('A', 'B'): 1, ('A', 'F'): 1, ('A', 'G'): 1, ('A', 'H'): 1, ('C', 'H'): 1, ('D', 'H'): 1, ('E', 'H'): 1})
## 위와같이 경우의 수를 딕셔너리 형태로 몇개인지 세어준다!
이 두 내장함수를 잘 활용하여 푸신 분들이 계셨다..
짱
from itertools import combinations
from collections import Counter
def solution(orders, course):
answer = []
for c in course:
temp = []
for order in orders:
combi = combinations(sorted(order), c)
temp += combi
counter = Counter(temp)
print(counter)
if len(counter) != 0 and max(counter.values()) != 1:
answer += [''.join(f) for f in counter if counter[f] == max(counter.values())]
return sorted(answer)
'Algorithm > programmers' 카테고리의 다른 글
programmers: 부족한 금액 계산하기 (0) | 2022.10.14 |
---|---|
[JS]programmers: 메뉴리뉴얼 (0) | 2022.10.13 |
[JS]programmers k진수에서 소수 개수 구하기 (0) | 2022.09.27 |
programmers k진수에서 소수 개수 구하기 (0) | 2022.09.22 |
[JS]programmers 크레인 인형뽑기 게임(js) (0) | 2022.09.20 |
댓글