νλ‘κ·Έλλ¨Έμ€ LV.1 λͺ¨μ
μ«μ μ§κΏ
λ¬Έμ μ€λͺ
λ μ μ X, Yμ μμμ μ리μμ 곡ν΅μΌλ‘ λνλλ μ μ k(0 ≤ k ≤ 9) λ€μ μ΄μ©νμ¬ λ§λ€ μ μλ κ°μ₯ ν° μ μλ₯Ό λ μμ μ§κΏμ΄λΌ ν©λλ€(λ¨, 곡ν΅μΌλ‘ λνλλ μ μ μ€ μλ‘ μ§μ§μ μ μλ μ«μλ§ μ¬μ©ν©λλ€). X, Yμ μ§κΏμ΄ μ‘΄μ¬νμ§ μμΌλ©΄, μ§κΏμ -1μ λλ€. X, Yμ μ§κΏμ΄ 0μΌλ‘λ§ κ΅¬μ±λμ΄ μλ€λ©΄, μ§κΏμ 0μ λλ€.
μλ₯Ό λ€μ΄, X = 3403μ΄κ³ Y = 13203μ΄λΌλ©΄, Xμ Yμ μ§κΏμ Xμ Yμμ 곡ν΅μΌλ‘ λνλλ 3, 0, 3μΌλ‘ λ§λ€ μ μλ κ°μ₯ ν° μ μμΈ 330μ λλ€. λ€λ₯Έ μμλ‘ X = 5525μ΄κ³ Y = 1255μ΄λ©΄ Xμ Yμ μ§κΏμ Xμ Yμμ 곡ν΅μΌλ‘ λνλλ 2, 5, 5λ‘ λ§λ€ μ μλ κ°μ₯ ν° μ μμΈ 552μ λλ€(Xμλ 5κ° 3κ°, Yμλ 5κ° 2κ° λνλλ―λ‘ λ¨λ 5 ν κ°λ μ§ μ§μ μ μμ΅λλ€.)
λ μ μ X, Yκ° μ£Όμ΄μ‘μ λ, X, Yμ μ§κΏμ return νλ solution ν¨μλ₯Ό μμ±ν΄ μ£ΌμΈμ.
μ ν μ¬ν
- 3 ≤ X, Yμ κΈΈμ΄(μλ¦Ώμ) ≤ 3,000,000μ λλ€.
- X, Yλ 0μΌλ‘ μμνμ§ μμ΅λλ€.
- X, Yμ μ§κΏμ μλΉν ν° μ μμΌ μ μμΌλ―λ‘, λ¬Έμμ΄λ‘ λ°νν©λλ€.
μ μΆλ ₯ μ
X | Y | result |
"100" | "2345" | "-1" |
"100" | "203045" | "0" |
"100" | "123450" | "10" |
"12321" | "42531" | "321" |
"5525" | "1255" | "552" |
μ μΆλ ₯ μ μ€λͺ
μ μΆλ ₯ μ #1
- X, Yμ μ§κΏμ μ‘΄μ¬νμ§ μμ΅λλ€. λ°λΌμ "-1"μ return ν©λλ€.
μ μΆλ ₯ μ #2
- X, Yμ 곡ν΅λ μ«μλ 0μΌλ‘λ§ κ΅¬μ±λμ΄ μκΈ° λλ¬Έμ, λ μμ μ§κΏμ μ μ 0μ λλ€. λ°λΌμ "0"μ return ν©λλ€.
μ μΆλ ₯ μ #3
- X, Yμ μ§κΏμ 10μ΄λ―λ‘, "10"μ return ν©λλ€.
μ μΆλ ₯ μ #4
- X, Yμ μ§κΏμ 321μ λλ€. λ°λΌμ "321"μ return ν©λλ€.
μ μΆλ ₯ μ #5
- μ§λ¬Έμ μ€λͺ λ μμμ κ°μ΅λλ€.
μ μΆ
import Foundation
func solution(_ X:String, _ Y:String) -> String {
var x = [0,0,0,0,0,0,0,0,0,0]
var y = [0,0,0,0,0,0,0,0,0,0]
var union = ""
for i in X{
x[Int(String(i))!] += 1
}
for i in Y{
y[Int(String(i))!] += 1
}
for i in (0..<10).reversed(){
var minValue = min(x[i], y[i])
if minValue != 0{
union += String(repeating: String(i), count: minValue)
}
}
if union.isEmpty{ return "-1" }
return (union.first! == "0") ? "0" : union
}
0λΆν° 9κΉμ§ κ° μ«μμ κ°μλ₯Ό λ΄μ λ°°μ΄ x, yλ₯Ό μ μΈνλ€.
Xμ Y κ°κ° λ°°μ΄ x, yμ μμ μ΄ κ°κ³ μλ μ«μμ κ°μλ₯Ό μ μ₯νλ€.
9λΆν° 0κΉμ§ iλ₯Ό κ°μμν€λ©° forλ¬Έμ λμνλ€.
min ν¨μλ₯Ό μ¬μ©ν΄ x, y λ°°μ΄μ λ΄κΈ΄ μ«μμ μ΅μ κ°μλ₯Ό ꡬν ν, μ΅μ κ°μκ° 0μ΄ μλ κ²½μ°μ κ²°κ΄κ°μ λ΄λ union λ³μμ μ«μλ₯Ό μ΅μ κ°μλ§νΌ λ°λ³΅νμ¬ μΆκ°νλ€.
union λ³μκ° λΉμ΄μλ κ²½μ°μλ -1μ λ°ννλ€.
union λ³μμ 첫 λ²μ§Έ κ°μ΄ 0μΈ κ²½μ°μλ 0μ λ°ννκ³ λλ¨Έμ§ κ²½μ°μλ union λ³μλ₯Ό λ°ννλ€.
λ€λ₯Έ νμ΄
import Foundation
func solution(_ X:String, _ Y:String) -> String {
let arrX = Array(X), arrY = Array(Y)
let union = Set(arrX).intersection(arrY).sorted(by: >)
var result = ""
union.forEach{ key in
result += String(repeating: key, count: min(arrX.filter{$0 == key}.count, arrY.filter{$0 == key}.count))
}
return result == "" ? "-1" : (result.first! == "0" ? "0" : result)
}
μ λ ₯λ°μ λ¬Έμμ΄ X, Yλ₯Ό κ°κ° λ°°μ΄ arrX, arrYλ‘ λ³ννλ€.
arrXλ₯Ό SetμΌλ‘ λ³νν ν arrYμμ κ΅μ§ν©μ ꡬν ν λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬νμ¬ union λ°°μ΄μ μ μ₯νλ€.
union λ°°μ΄μ μμλ₯Ό arrXκ° κ°κ³ μλ κ°μμ arrYκ° κ°κ³ μλ κ°μλ₯Ό λΉκ΅νμ¬ λ μμ μλ§νΌ λ°λ³΅μμΌ result λ³μμ μ μ₯νλ€.
result λ³μκ° λΉμ΄μμΌλ©΄ -1μ, 첫 λ²μ§Έκ° 0μ΄λ©΄ 0μ μλλΌλ©΄ resultλ₯Ό λ°ννλ€.
'β¨οΈ Language > swift' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€ LV.1] μ½λΌ λ¬Έμ (0) | 2023.03.09 |
---|---|
[νλ‘κ·Έλλ¨Έμ€ LV.1] μΌμ΄μ¬ (0) | 2023.03.09 |
[νλ‘κ·Έλλ¨Έμ€ LV.1] μ±κ²© μ ν κ²μ¬νκΈ° (0) | 2023.03.08 |
[νλ‘κ·Έλλ¨Έμ€ LV.1] μ κ³ κ²°κ³Ό λ°κΈ° (0) | 2023.03.07 |
[νλ‘κ·Έλλ¨Έμ€ LV.1] λλ¨Έμ§κ° 1μ΄ λλ μ μ°ΎκΈ° (0) | 2023.03.07 |