[Swift]プログラマー-レポート結果の取得
10166 ワード
質問リンク
https://programmers.co.kr/learn/courses/30/lessons/92334
ディクシャナリーで問題を解く.
どうしてだめなの.Programmersサイトでは入口が綺麗だったので、『ちゃんと解けるように~』と言っていましたが、TestCase 3号でタイムアウトがずっと表示されていたので、ちょっとそうでした.😅
.
この部分で逆に
すなわち、
後で通報された人のカウントも簡単です
例1のdict出力.2(=k)名以上の人が通報すると不良ユーザーです.
frodoとneoを通報した人が2人を超えたため、逮捕された.
frodoとneoを告発した人にメールを送ります.
あ.しかし前述したようにtestcase 3は常にタイムアウトを示している
考えてみると
これをつけないと?名前もidリストのindexに変えますか?......と思った.
ああああ.
メモリと時間は逆比例...取引終了?...こんな関係らしい
https://programmers.co.kr/learn/courses/30/lessons/92334
に答える
ディクシャナリーで問題を解く.
どうしてだめなの.Programmersサイトでは入口が綺麗だったので、『ちゃんと解けるように~』と言っていましたが、TestCase 3号でタイムアウトがずっと表示されていたので、ちょっとそうでした.😅
.
この部分で逆に
dictionary
を作りました.すなわち、
dict = [ 신고당한사람 : [신고자] ]
は、このような形式で記述される.後で通報された人のカウントも簡単です
例1のdict出力.2(=k)名以上の人が通報すると不良ユーザーです.
frodoとneoを通報した人が2人を超えたため、逮捕された.
frodoとneoを告発した人にメールを送ります.
Try1
for name in dict.keys {
if dict[name]!.count >= k {
for n in dict[name]! {
arr[id_list.firstIndex(of: n)!] += 1
}
}
}
countがkより大きい場合、申告者配列が呼び出され、その申告者インデックス位置+1になる.あ.しかし前述したようにtestcase 3は常にタイムアウトを示している
考えてみると
firstIndex
はちょっと臭い.これをつけないと?名前もidリストのindexに変えますか?......と思った.
ああああ.
ids = [name: index]
として保存され、firstIndexは不要です.メモリと時間は逆比例...取引終了?...こんな関係らしい
Source Code
func solution(_ id_list:[String], _ report:[String], _ k:Int) -> [Int] {
var dict: [String: [String]] = [:]
var arr: [Int] = Array(repeating: 0, count: id_list.count)
var ids: [String: Int] = [:]
// 이름에 해당하는 index dictionary 생성
for (index, id) in id_list.enumerated() {
ids[id] = index
}
// [ 신고당한사람 : [신고자] ]
for repo in report {
let arr = repo.split(separator: " ").compactMap { String($0) }
let name = arr[1]
let singo = arr[0]
if dict[name] == nil {
dict.updateValue([singo], forKey: name)
} else {
if !dict[name]!.contains(singo) {
dict[name]!.append(singo)
}
}
}
for name in dict.keys {
if dict[name]!.count >= k {
for n in dict[name]! {
arr[ids[n]!] += 1
}
}
}
return arr
}
Reference
この問題について([Swift]プログラマー-レポート結果の取得), 我々は、より多くの情報をここで見つけました https://velog.io/@heunb/Swift-프로그래머스-신고결과-받기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol