본문 바로가기
알고리즘

[Swift 알고리즘] 프로그래머스 - 의상

by 코코종 2023. 5. 5.
728x90

안녕하세요 코코종입니다.

어렵지 않으니 바로 갑니다.

import Foundation

func solution(_ clothes:[[String]]) -> Int {
    // idea: (갯수+1)씩을 곱하고 -1해주기(아무것도 안입은 경우)
    var answer = 1
    var dict: [String : Int] = [:] // 카테고리명 : 갯수
    for cloth in clothes {
        let category = cloth[1]
        var cnt: Int = dict[category] ?? 0
        dict[category] = cnt + 1   
    }
    dict.forEach { k, v in
        answer *= (v+1)
    }
    answer -= 1 // 아무것도 안입는 경우
    return answer
}

어떻게 계산하느냐의 문제인데요. 모자 2개 옷 2개인 경우에 카테고리에서 입지 않는경우를 추가해주면 (2 + 1)*(2 + 1) 을 하면 모든 가짓수가 나오게 되는데요. 이때 한개 이상은 입어야하므로 (경찰 아저씨가 잡아가요 😂) -1 을 해줬습니다

딕셔너리에 key - value로 저장하고 꺼내쓰는 간단한 문제였습니다.

728x90