-
해시_프로그래머스_위장알고리즘/알고리즘 문제풀이 2021. 7. 14. 16:52
각 의상 카테고리 + 1 을 하고 (해당 카테고리를 착용하지 않는 경우)
각 의상 카테고리를 곱하여 경우의 수를 구한 뒤
경우의 수 - 1 을 하여 결과를 도출 (모두 입지 않는 경우)
각 의상 카테고리를 어떻게 구해 낼 까 고민이었음.
처음에는 clothes.map하여 의상분류별로 2중배열을 만들어 각 배열의count를 곱할까 했는데,
dictionary key를 사용하는 편이 쉬울 것이라 생각하여 이와 같이 구현함.
import Foundation func solution(_ clothes:[[String]]) -> Int { var dic:[String:Int] = [:] var sol = 1 clothes.enumerated().makeIterator().forEach({ if dic[$0.element[1]] == nil { dic[$0.element[1]] = 1 } else { dic[$0.element[1]] = dic[$0.element[1]]! + 1 } }) dic.forEach({ (key, value) in sol = sol * (value + 1) }) return sol - 1 }
'알고리즘 > 알고리즘 문제풀이' 카테고리의 다른 글
정렬_프로그래머스_H-Index (0) 2021.07.19 스택/큐_프로그래머스_다리를 지나는 트럭 (0) 2021.07.15 해시_LeetCode_N-Repeated Element in Size 2N Array (0) 2021.07.14 완전탐색_LeetCode_ContainsDuplicate (0) 2021.07.08 배열_프로그래머스_level2_가장 큰 수 (0) 2021.07.05