우연히 프로그래머스 스킬 체크를 발견하여 풀어보았다.
항상 예제만 풀었지 실제처럼 시간을 재고 풀어본 적은 없었는데
level1은 무난하게 합격했지만
level2는 3번이나 불합격했다.....
그래프나 dp 문제에 집중하느라 스택이나 해시 문제를 소홀히 한 것 같아
다시 풀어보기로 했다.
프로그래머스는 defaultdict 라이브러리를 사용하는 문제가 많이 나오는 것 같다.
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/42578
코딩테스트 연습 - 위장
programmers.co.kr
풀이
- 가능한 경우의 수는 아이템 종류의 개수 + 1(선택하지 않을 경우의 수) 를 모두 곱한 후
모두 다 선택하지 않는 경우를 제외해야하므로 -1를 해주면 된다.
- defaultdict(int)를 사용하여 아이템 종류 별 개수를 기록해주었다.
from collections import defaultdict
def solution(clothes):
answer = 1
dic = defaultdict(int)
for i in clothes:
dic[i[1]] += 1
for i in dic.values():
answer *= (i+1)
return answer-1
'개발 > algorithm' 카테고리의 다른 글
[프로그래머스][level2] 다리를 지나는 트럭 - python (0) | 2022.02.03 |
---|---|
[프로그래머스][level2] 주식가격 - python (0) | 2022.02.03 |
[백준 1182번] 부분수열의 합 - python (0) | 2022.01.29 |
[백준 14501번] 퇴사 -python (0) | 2022.01.29 |
[백준 1065번] 한수 -python (0) | 2022.01.29 |