From 8ab9cf6e06a7c8b8c112748c43a5ef5722e24576 Mon Sep 17 00:00:00 2001 From: JunYoung Date: Thu, 5 Feb 2026 10:29:21 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A7=91=ED=95=A9=20=EC=8B=9D=EC=9D=84=20?= =?UTF-8?q?=EB=AA=B0=EB=9E=90=EC=9C=BC....?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Raven.swift" | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 "WEEK03/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244_[1\354\260\250] \353\211\264\354\212\244 \355\201\264\353\237\254\354\212\244\355\204\260\353\247\201/Raven.swift" diff --git "a/WEEK03/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244_[1\354\260\250] \353\211\264\354\212\244 \355\201\264\353\237\254\354\212\244\355\204\260\353\247\201/Raven.swift" "b/WEEK03/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244_[1\354\260\250] \353\211\264\354\212\244 \355\201\264\353\237\254\354\212\244\355\204\260\353\247\201/Raven.swift" new file mode 100644 index 0000000..668866b --- /dev/null +++ "b/WEEK03/\355\224\204\353\241\234\352\267\270\353\236\230\353\250\270\354\212\244_[1\354\260\250] \353\211\264\354\212\244 \355\201\264\353\237\254\354\212\244\355\204\260\353\247\201/Raven.swift" @@ -0,0 +1,35 @@ +func solution(_ str1:String, _ str2:String) -> Int { + + var str1 = makeWordList(str1) + var str2 = makeWordList(str2) + var intersection: Int = 0 + for key in str1.0.keys { + let num = min(str1.0[key] ?? 0, str2.0[key] ?? 0) + intersection += num + } + let union = str1.1 + str2.1 - intersection + + if str1.1 == 0 && str2.1 == 0 { + return 65536 + } + return 65536 * intersection / union +} + +func makeWordList(_ str: String) -> ([String: Int], Int) { + var word: String = "" + var wordMap: [String: Int] = [:] + var count: Int = 0 + for s in str.lowercased() { + if !s.isLetter { + word = "" + continue + } + word += String(s) + if word.count == 2 { + wordMap[word, default: 0] += 1 + count += 1 + word = String(s) + } + } + return (wordMap, count) +}