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
- 티스토리
- 보행자 천국
- jdbc
- 호텔 방 배정
- 불량 사용자
- Tistory
- 카카오 인턴
- 트라이
- Python
- 프로그래머스
- 티스토리 open api
- 크레인 인형뽑기 게임
- pycon
- trie
- 징검다리 건너기
- 가사 검색
- 튜플
- 알고리즘
- 트라이 #trie #알고리즘
- Open API
- bulk update
- CleanCode
- Spring Boot
Archives
- Today
- Total
택시짱의 개발 노트
[프로그래머스] 위장 본문
링크
https://programmers.co.kr/learn/courses/30/lessons/42578
풀이
스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 구하는 문제이다.
스파이들은 하나 이상의 옷을 입으면 된다.
한 종류의 옷만 있을때는 옷을 하루에 한개씩 입으면 되기 때문에 옷의 갯수가 답이 되고,
여러 종류의 옷이 있을때는 A옷을 입고 B는 안입고, A 안입고 B입고, A입고 B입고 이런 방법이 있을수 있기 때문에
A와 B옷의 종류가 각각 2, 3벌씩 있다면 여기에 각각 옷을 안 입는 경우를 추가해준다 그러면 3, 4벌씩 있다고 할수 있고 그러면 3*4를 하면 12가지 방법이 나오게 된다. 그러나 여기서 둘다 안입는 경우를 빼주게 되면
12 - 1 = 11 즉 11가지의 방법이 나오게 된다.
import sys
from collections import deque, Counter
from queue import PriorityQueue
from itertools import permutations,combinations,product
sys.setrecursionlimit(10000)
def solution(clothes):
clothe = {}
for name,what in clothes:
if what in clothe.keys():
clothe[what] += 1
else:
clothe[what] = 1
answer = 1
for value in clothe.values():
if len(clothe) == 1:
return value
else:
answer *= (value+1)
return answer - 1
반응형
'알고리즘' 카테고리의 다른 글
[카카오 인턴] 보석 쇼핑 with python (0) | 2020.09.11 |
---|---|
[카카오 인턴] 경주로 건설 with python (0) | 2020.09.11 |
[프로그래머스] 베스트앨범 (python) (0) | 2020.05.21 |
[백준] 9987번 포켓몬 마스터 (0) | 2020.04.28 |
[백준] 14889번 스타트와 링크 (0) | 2020.04.25 |
Comments