728x90
[Swift] 프로그래머스 위장(lv. 2)
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/42578
2. 접근
의상의 종류가 중요하다. 의상의 종류 별로 몇 개가 있는지를 알아보아야 한다. 전체 경우의 수를 알아내는 것이기 때문에, 의상의 종류 별 개수를 모두 곱하고, 모두 입지 않은 경우의 수 1을 빼주면 의상을 입을 수 있는 모든 경우의 수가 나올 수 있다.
첫 번 째 반복문에서는 dictionary를 활용해서 의상 별 아이템의 개수를 모두 세주었다. 그런 다음, clothesCount로 value를 옮겨 두었고, 그 값들을 모두 곱하고 -1 하여 답을 리턴해주었다.
3. 코드
import Foundation
func solution(_ clothes:[[String]]) -> Int {
var dictionary: [String : Int] = [:]
for i in clothes {
if dictionary.contains(where: { $0.key == i[1] }) {
dictionary[i[1]]! += 1
} else {
dictionary[i[1]] = 1
}
}
var clothesCount = [Int]()
dictionary.forEach({
clothesCount.append($0.value)
})
var answer = 1
for i in clothesCount {
answer *= (i + 1)
}
return answer - 1
}
728x90
'Problem Solving' 카테고리의 다른 글
[Swift] 프로그래머스 기능개발(lv. 2) (0) | 2023.03.24 |
---|---|
[Swift] 프로그래머스 튜플(lv. 2) (0) | 2023.03.23 |
[Swift] 프로그래머스 행렬의 곱셈(lv. 2) (0) | 2023.03.21 |
[Swift] 프로그래머스 괄호 회전하기(lv. 2) (0) | 2023.03.20 |
[Swift] 프로그래머스 [1차] 캐시(lv. 2) (0) | 2023.03.17 |
댓글