https://school.programmers.co.kr/learn/courses/30/lessons/131128
λ¬Έμ
λ¬Έμ μ€λͺ
λ μ μ 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 (μκ° μ΄κ³Ό)
def solution(X, Y):
answer = ""
inter = []
for x in X:
if x in Y:
inter.append(int(x))
Y = Y.replace(x,"",1)
inter.sort(reverse=True)
if len(inter) == 0:
answer = "-1"
elif inter[0] == 0:
answer = "0"
else:
for i in inter:
answer += str(i)
return answer
νμ΄ # 1
- κ΅μ§ν© μμλ₯Ό λ΄μ inter 리μ€νΈ μμ±
- Xλ₯Ό λλ©΄μ Xμ μμκ° Yμ μμΌλ©΄ inter 리μ€νΈμ ν΄λΉ μμ μΆκ°νκ³ Yμμ ν΄λΉ μμ μμ
- replace("λ°κΎΈκΈ° μ λ¬Έμ", "λ°κΎΌ νμ λ¬Έμ", λ°κΎΈκ³ μΆμ λ¬Έμ κ°―μ)
- inter λ₯Ό λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬
- interκ° μμ κ²½μ° "-1", 0μ΄ μ¬λ¬κ°μΈ κ²½μ°μλ "0"μ μΆλ ₯
- interκ° μκ³ 0μ΄ μλλΌλ©΄ 리μ€νΈλ₯Ό λλ©΄μ λ¬Έμλ₯Ό answerμ μΆκ°
# 2
def solution(X, Y):
answer = ""
numberX = [0]*10
numberY = [0]*10
# κ° μ«μκ° λͺ κ°μ© μλμ§ μΉ΄μ΄νΈ
for x in X:
numberX[int(x)] += 1
for y in Y:
numberY[int(y)] += 1
# λ°λ³΅λ¬Έμ λλ©΄μ μΆκ°
for idx in range(9,-1,-1):
if numberX[idx] > 0 and numberY[idx] > 0:
cnt = min(numberX[idx], numberY[idx])
answer += (str(idx) * cnt)
if answer == "":
answer = "-1"
elif answer[0] == "0":
answer = "0"
return answer
νμ΄ #2
- Xμ Yμ κ° μ«μ κ°―μλ₯Ό numberXμ numberYμ μΉ΄μ΄νΈ (κ° μ«μ = μΈλ±μ€)
- sortλ₯Ό νμ§ μκΈ° μν΄ κ°μ₯ ν° μλΆν° λ°λ³΅λ¬Έ
- numberXμ numberYμ λ λ€ μ‘΄μ¬νλ©΄ λ μ€μ μμ μλ§νΌ answerμ μΆκ°
- κ΅μ§ν©μ΄ μκ±°λ 0μ΄ μ¬λ¬ κ°μΈ κ²½μ° μ²λ¦¬
λ¬Έμ μ체λ λ¨μνλ° μ ν μ¬νμ 보면 μ μκ° μλΉν ν΄ μλ μλ€λ μ‘°κ±΄μ΄ μλ€. sortλ₯Ό μ΄μ©νλ©΄ μκ°μ΄ μ€λ 걸리λ―λ‘ sortλ₯Ό μ¬μ©νμ§ μκ³ forλ¬Έλ 10κ° μ«μ λ΄μμ λλλ‘ μ½λλ₯Ό μμ νμλ€. ν΅κ³Όλ νμ§λ§ μκ°μ΄ μ κ² κ±Έλ¦¬λ κ² κ°μ§λ μλ€. μκ° λ³΅μ‘λλ κ³ λ €ν΄μ μ½λλ₯Ό μ§λ κ² μ€μνλ°....μ΄λ ΅κ΅¬λ§...
'μ½λ© λ¬Έμ νμ΄ π» > νλ‘κ·Έλλ¨Έμ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€ / νμ΄μ¬] Lv.1 곡μ μ°μ± (0) | 2024.01.05 |
---|---|
[νλ‘κ·Έλλ¨Έμ€ / νμ΄μ¬] Lv.1 κΈ°μ¬λ¨μμ 무기 (1) | 2023.12.22 |
[νλ‘κ·Έλλ¨Έμ€ / νμ΄μ¬] Lv.1 μ±κ²© μ ν κ²μ¬νκΈ° (1) | 2023.12.15 |
[νλ‘κ·Έλλ¨Έμ€ / νμ΄μ¬] Lv.0 ꡬμ¬μ λλλ κ²½μ°μ μ (0) | 2023.12.14 |
[νλ‘κ·Έλλ¨Έμ€ / νμ΄μ¬] Lv.0 κ²ΉμΉλ μ λΆμ κΈΈμ΄ (1) | 2023.12.05 |