문제 : https://programmers.co.kr/learn/courses/30/lessons/42578
음.. 해쉬를 이용한다는 것 까지는 알았는데 수학에 약해서 경우의 수를 어떻게 계산해야 될지 몰랐다.. ㅠㅠ
import Foundation
func solution(_ clothes:[[String]]) -> Int {
var result = 1
var dic = [String:Int]()
for cloth in clothes {
if dic[cloth[1]] == nil {
dic[cloth[1]] = 1
} else {
dic[cloth[1]]! += 1
}
}
for (key,val) in dic {
result *= (val + 1)
}
//아무것도 선택 안하는 경우는 없으므로 1 빼줌
result = result - 1
return result
}
문제풀이
(A옷의 종류의 갯수 + 1) * (B옷의 종류의 갯수 + 1) * (C옷의 종류의 갯수 + 1) - 1
+ 1 은 옷을 선택,비선택 할 경우 2가지가 있어서 +1 해줌
- 1 은 아무것도 선택 안하는 경우는 없으므로 1 빼줌
반응형
'알고리즘' 카테고리의 다른 글
[정렬] H-Index 프로그래머스 Swift (0) | 2021.07.19 |
---|---|
[Queue] 다리를 지나는 트럭 - 프로그래머스 Swift (0) | 2021.07.15 |
[해쉬] N-Repeated Element in Size 2N Array - LeetCode Swift (0) | 2021.07.14 |
[완전탐색] LeetCode contains-duplicate : 중복찾기 - 스위프트 (0) | 2021.07.09 |
[큐] 프로그래머스 42587문제 : 프린터 - 스위프트 (2) | 2021.07.07 |