Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 개발
- level3
- redux state값 유지
- 창업 300
- 공공데이터 포털
- 티스토리챌린지
- 드림핵
- 부산 맛집 OPEN API
- php-1
- python
- API 활용 신청
- 사업계획서
- apk 빌드
- 고고학 최고의 발견
- url 랜더링
- 보안
- 코딩테스트
- React
- expo
- react-router-dom
- 오블완
- 블로그 뉴비
- 새로고침
- 꿀팁 환영
- web-view
- 훈수 가능
- Dreamhack
- 프로그래머스
- Redux
Archives
- Today
- Total
1223v
[프로그래머스] Lv.1 의상 본문
문제 설명 및 제한사항
https://school.programmers.co.kr/learn/courses/30/lessons/42578
아이디어 및 해결 방법
우선 경우의 수는
모자 2
안경 1 일경우,
모자_1 : 1
모자_2 : 1
안경 1 : 1
모자 1 + 안경 1 : 1
모자 1 + 안경 1 : 1
이런식으로 총 5개의 경우의 수가 나온다.
무조건 1개씩은 입는다 했으니
( N+1 * M +1 ) 꼴이 된다.
그렇다면 우선 defaultdict로 옷의 두번째 요소인 타입이 같은 요소가 있는지 찾는다.
최종적으로 같은 타입의 요소가 몇개있는지 세고,
그 타입에 따른 갯수에 +1(안입는경우)를 해준뒤 모든 경우의 수를 곱하고 마지막에 아무것도 안입는 경우를 빼면
답이 나온다.
입출력 예
[["yellow_hat", "headgear"], ["blue_sunglasses", "eyewear"], ["green_turban", "headgear"]] | 5 |
코드
from collections import defaultdict
def solution(clothes):
dic = defaultdict(int)
for cloth in clothes:
cloth_type = cloth[1]
dic[cloth_type] += 1
answer = 1
for type in dic.keys():
answer *= (dic[type] + 1) # 옷을 안고른 경우
answer -= 1 #어떤 종류의 옷도 선택하지 않는 경우
return answer
clothes = [["yellow_hat", "headgear"], ["blue_sunglasses", "eyewear"], ["green_turban", "headgear"]]
answer = solution(clothes)
print(answer)
출처
728x90
'PS' 카테고리의 다른 글
[Progammers] Python 프로그래머스 모음사전(84512) (0) | 2024.11.03 |
---|---|
[BOJ] Python 백준 알고리즘 수업 - 너비 우선 탐색 1(24444) (0) | 2024.11.01 |
[Progammers] Python 프로그래머스 입국심사(43238) (2) | 2024.10.30 |
[BOJ] Python 백준 징검다리(11561) (0) | 2024.10.29 |
[BOJ] Python 백준 게임(1072) (1) | 2024.10.28 |