-
[Swift] 추억 점수Coding Test 2023. 11. 2. 23:27
[내 풀이]
import Foundation func solution(_ name:[String], _ yearning:[Int], _ photo:[[String]]) -> [Int] { var result:[Int] = [] var resultValue:Int = 0 var currentNumber:Int = 0 for currentArray in photo { resultValue = 0 for currentName in currentArray { currentNumber = 0 for person in name { if person == currentName { resultValue += yearning[currentNumber] } currentNumber += 1 } } result.append(resultValue) } return result }
생각해볼 것
1) forEach문 사용 : Collection의 배열 만큼 반복하고 클로저를 실행
2) Dcitonary 사용
import Foundation func solution(_ name:[String], _ yearning:[Int], _ photo:[[String]]) -> [Int] { var dic = [String: Int]() // name 개수만큼 반복 -> index 추출을 위함 (0..<name.count).forEach { dic[name[$0]] = yearning[$0]} //2차원 배열 -> 1차원 배열로 변환 return photo.map { $0.reduce(0, { $0 + (dic[$1] ?? 0)}) } }
'Coding Test' 카테고리의 다른 글
[Swift] 크기가 작은 부분 문자열 (0) 2023.11.15 [Swift] 소수 판별 (1) 2023.11.14 [Swift] 내적 (0) 2023.11.12 [Swift] 음양 더하기 (0) 2023.11.06 [Swift] 정수 제곱근 판별 (0) 2023.10.19