-
[Swift] 위장 프로그래머스 코딩테스트개발/Swift 2022. 1. 2. 15:03
우선 주어진 배열을 딕셔너리 타입으로 변환한다.
딕셔너리는 의상의 종류(키) : 의상의 갯수(값) 으로 구성된다.
{ "headgear" : 2 , "eyewear": 1 }
위 의상들을 조합할수있는 코디의 개수는 5개다.
모자는 총 두개이므로 3가지의 경우가 나온다. 1번 모자를쓰거나 2번 모자를 쓰거나 둘다 안쓸수도있다.
안경은 총 한개이므로 2가지 경우가 나온다. 1번 안경을 쓰거나 안쓸수도있다.
그럼 이 두개를 곱해주면 된다. 3 *2 = 6
그런데 아무거도 안입는 경우는 없다하니 -1 을 해주면 된다.
코드로 바꿔보자.
func solution(_ clothes:[[String]]) -> Int { var dict = [String:Int]() var count = 1 // 곱셈을 사용해야하므로 초기값을 1로 넣었다. //딕셔너리 구현 clothes.forEach{ value in if let count = dict[value[1]] { //해당 키값이 있는경우 수량 +1 dict[value[1]] = count + 1 }else {//키값 없으면 넣어주고 수량 1 넣어줌 dict[value[1]] = 1 } } //딕셔너리 반복해 값을 모두 곱해줌 dict.forEach { (key,value) in count = count * ( value + 1) } //모두안입는경우 제와 -1 count -= 1 return count }
'개발 > Swift' 카테고리의 다른 글
[Swift] 기능개발 코딩테스트 프로그래머스 (0) 2022.01.04 [Swift] 베스트앨범 프로그래머스 코딩테스트 (0) 2022.01.03 존재하는 프로젝트cocoapod private용으로 배포 하기 (0) 2021.12.27 [Swift] Dynamic Dispatch / Static Dispatch (0) 2021.12.20 [Swift] frame이 다시 초기화 되는 오류 - translatesAutoresizingMaskIntoConstraints (0) 2021.12.08