Dictionary를 이용하는 문제. 처음에는 경우의 수를 생각해 반복문으로 풀으려고 했으나 그렇게 할 필요가 없이 각 종류별 옷의 수량+1을 곱한 수 마지막에 -1을 빼면 된다. Dictionary는 키값이 옷의 종류이고 value가 종류의 개수다.
func solution(_ clothes:[[String]]) -> Int {
var count = 1
var clothDic : [String : Int] = [:]
for item in clothes {
if clothDic.contains(where: { (key: String, value: Int) in
return key == item[1]
}){
clothDic[item[1]] = clothDic[item[1]]!+1
}else{
clothDic[item[1]]=1
}
}
for item in clothDic.values{
print(item)
count = count * (item+1)
}
return count-1
}
'Algorithm > 프로그래머스' 카테고리의 다른 글
프로그래머스 : 기능개발(Swift) (0) | 2021.09.14 |
---|---|
프로그래머스 : 베스트 앨범(Swift) (0) | 2021.09.13 |
프로그래머스: 전화번호 목록(Swift) (0) | 2021.09.10 |
프로그래머스: 완주하지 못한 선수(Java, Swift) (0) | 2021.09.05 |
프로그래머스 : 로또의 최고 순위와 최저 순위(Swift) (0) | 2021.09.04 |