Algorithm/programmers
프로그래머스 - 가장 많이 받은 선물
ytw_developer
2024. 9. 5. 00:48
import Foundation
func solution(_ friends:[String], _ gifts:[String]) -> Int {
var friendInfo: [String:Int] = [:]
for (index, name) in friends.enumerated() {
friendInfo[name] = index
}
var giftState: [[Int]] = .init(repeating: .init(repeating: 0, count: friends.count), count: friends.count)
var giftCount: [Int] = .init(repeating: 0, count: friends.count)
for gift in gifts {
var senderAndReceiver = gift.split(separator: " ").map { String($0) }
var sender = senderAndReceiver[0]
var receiver = senderAndReceiver[1]
giftState[friendInfo[sender]!][friendInfo[receiver]!] += 1
giftCount[friendInfo[sender]!] += 1
giftCount[friendInfo[receiver]!] -= 1
}
var maximum = 0
for sender in 0..<friendInfo.count {
var tmp = 0
for receiver in 0..<friendInfo.count {
if giftState[sender][receiver] > giftState[receiver][sender] || (giftState[sender][receiver] == giftState[receiver][sender] && giftCount[sender] > giftCount[receiver]) {
tmp += 1
}
}
maximum = max(maximum, tmp)
}
return maximum
}