π Coding Test/Programmers
[Python] νλ‘κ·Έλλ¨Έμ€ μ½λ©ν μ€νΈ μ°μ΅ level3 (μ΅κ³ μ μ§ν©)
γ
γ
γ
γ
2023. 1. 18. 04:35
728x90
1. λ¬Έμ μ€λͺ
μμ°μ n κ°λ‘ μ΄λ£¨μ΄μ§ μ€λ³΅ μ§ν©(multi set, νΈμμ μ΄νμλ "μ§ν©"μΌλ‘ ν΅μΉ) μ€μ λ€μ λ 쑰건μ λ§μ‘±νλ μ§ν©μ μ΅κ³ μ μ§ν©μ΄λΌκ³ ν©λλ€.
- κ° μμμ ν©μ΄ Sκ° λλ μμ μ§ν©
- μ 쑰건μ λ§μ‘±νλ©΄μ κ° μμμ κ³± μ΄ μ΅λκ° λλ μ§ν©
μλ₯Ό λ€μ΄μ μμ°μ 2κ°λ‘ μ΄λ£¨μ΄μ§ μ§ν© μ€ ν©μ΄ 9κ° λλ μ§ν©μ λ€μκ³Ό κ°μ΄ 4κ°κ° μμ΅λλ€.
{ 1, 8 }, { 2, 7 }, { 3, 6 }, { 4, 5 }
κ·Έμ€ κ° μμμ κ³±μ΄ μ΅λμΈ { 4, 5 }κ° μ΅κ³ μ μ§ν©μ
λλ€.
μ§ν©μ μμμ κ°μ nκ³Ό λͺ¨λ μμλ€μ ν© sκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, μ΅κ³ μ μ§ν©μ return νλ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
2. μ νμ¬ν
- μ΅κ³ μ μ§ν©μ μ€λ¦μ°¨μμΌλ‘ μ λ ¬λ 1μ°¨μ λ°°μ΄(list, vector) λ‘ return ν΄μ£ΌμΈμ.
- λ§μ½ μ΅κ³ μ μ§ν©μ΄ μ‘΄μ¬νμ§ μλ κ²½μ°μ ν¬κΈ°κ° 1μΈ 1μ°¨μ λ°°μ΄(list, vector) μ -1 μ μ±μμ return ν΄μ£ΌμΈμ.
- μμ°μμ κ°μ nμ 1 μ΄μ 10,000 μ΄νμ μμ°μμ λλ€.
- λͺ¨λ μμλ€μ ν© sλ 1 μ΄μ, 100,000,000 μ΄νμ μμ°μμ λλ€.
3. λ΄ νμ΄
def solution(n, s):
if s//n < 1:
return [-1]
answer = []
while s >= 0:
if s % n == 0:
answer.extend([s//n for _ in range(n)])
break
else:
answer.append(s//n+1)
s = s - s//n -1
n -= 1
return sorted(answer)
4. λ€λ₯Έ μ¬λ νμ΄
def bestSet(n, s):
answer = []
a = int(s/n)
if a == 0:
return [-1]
b = s%n
for i in range(n-b):
answer.append(a)
for i in range(b):
answer.append(a+1)
return answer
# μλλ ν
μ€νΈλ‘ μΆλ ₯ν΄ λ³΄κΈ° μν μ½λμ
λλ€.
print(bestSet(3,13))
728x90