func solution(_ clothes:[[String]]) -> Int {
//곱셈을 진행할 예정이라 기본값 1을 준다.
var multipleLockCount : Int = 1
//옷종류와 해당 옷의 몇개의 옷종류가 있는지 저장하는 딕셔너리
var clothCounts : [String : Int] = [:]
//리스트를 받으면
//0번은 옷의 이름 1번은 옷의 종류이다
for item in clothes {
//옷의 종류가 이미 포함되어있다면
//옷의 종류를 늘리지 않고 옷 종류의 갯수를 올리고
if(clothCounts.contains{ $0.key == item[1] }){
simpleLockCount += 1
clothCounts[item[1]]! += 1
}else{
//처음 등록된 옷의 종류라면 새롭게 등록
simpleLockCount += 1
clothCounts.updateValue(1, forKey: item[1])
}
}
//옷의 종류별로 갯수 + 안입는경우
for cloth in clothCounts{
multipleLockCount *= (cloth.value + 1)
}
//문제에 안입는 경우 없다고 했으니 -1
return multipleLockCount - 1
}
문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/42578?language=swift
코테 공부를 따로 공부하지 않습니다. 심심할때 시간때울려고 풀고있습니다.
더 좋은 정답이 충분히 있을거라고 생각합니다.
'기타공부' 카테고리의 다른 글
코딩테스트 연습 2020 KAKAO BLIND RECRUITMENT 문자열 압축 Swift (0) | 2021.12.04 |
---|---|
코딩테스트 연습2020 KAKAO BLIND RECRUITMENT괄호 변환 Swift (0) | 2021.12.01 |
2018 KAKAO BLIND RECRUITMENT 파일명 정렬 Swift (0) | 2021.11.30 |