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
}
'Algorithm > programmers' 카테고리의 다른 글
프로그래머스 - 덧칠하기 (0) | 2024.09.06 |
---|---|
프로그래머스 - 등수 매기기 (0) | 2024.09.05 |
프로그래머스 - 치킨 쿠폰 (0) | 2024.09.02 |
프로그래머스 - 중복된 숫자 개수 filter, reduce (0) | 2024.08.31 |
프로그래머스 - 배열 만들기 3, flatMap (0) | 2024.08.30 |