[알고리즘] 프로그래머스: 신고 결과 받기

로빈·2022년 5월 31일
0

Algorithm, Data Structure

목록 보기
5/12

https://programmers.co.kr/learn/courses/30/lessons/92334

레벨 : level1
언어 : swift

import Foundation

let id_list = ["muzi", "frodo", "apeach", "neo"]
let report = ["muzi frodo", "apeach frodo", "frodo neo", "muzi neo", "apeach muzi"]
let k = 2


func solution(_ id_list:[String], _ report:[String], _ k:Int) -> [Int] {
    var idDictinary: [String: Int] = [:]
    var reportedUsers: [String: [String]] = [:]
    var result = [Int].init(repeating: 0, count: id_list.count)
    
    for (index, id) in id_list.enumerated() {
        idDictinary[id] = index
    }
    
    for reportString in Set(report) {
        let arr = reportString.split(separator: " ").map { String($0) }
        if reportedUsers[arr[1]] == nil {
            reportedUsers[arr[1]] = [arr[0]]
        } else {
            reportedUsers[arr[1]]! += [arr[0]]
        }
    }
    
    for (_, value) in reportedUsers {
        if value.count >= k {
            for i in value {
                result[idDictinary[i]!] += 1
            }
        }
        
    }
    
    return result
}
profile
IOS 앱개발 공부중

0개의 댓글