
https://school.programmers.co.kr/learn/courses/30/lessons/12938
μμ°μ n κ°λ‘ μ΄λ£¨μ΄μ§ μ€λ³΅ μ§ν©(multi set, νΈμμ μ΄νμλ "μ§ν©"μΌλ‘ ν΅μΉ) μ€μ λ€μ λ 쑰건μ λ§μ‘±νλ μ§ν©μ μ΅κ³ μ μ§ν©μ΄λΌκ³ ν©λλ€.
κ° μμμ ν©μ΄ Sκ° λλ μμ μ§ν©
μ 쑰건μ λ§μ‘±νλ©΄μ κ° μμμ κ³± μ΄ μ΅λκ° λλ μ§ν©
μλ₯Ό λ€μ΄μ μμ°μ 2κ°λ‘ μ΄λ£¨μ΄μ§ μ§ν© μ€ ν©μ΄ 9κ° λλ μ§ν©μ λ€μκ³Ό κ°μ΄ 4κ°κ° μμ΅λλ€.
{ 1, 8 }, { 2, 7 }, { 3, 6 }, { 4, 5 }
κ·Έμ€ κ° μμμ κ³±μ΄ μ΅λμΈ { 4, 5 }κ° μ΅κ³ μ μ§ν©μ
λλ€.
μ§ν©μ μμμ κ°μ nκ³Ό λͺ¨λ μμλ€μ ν© sκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, μ΅κ³ μ μ§ν©μ return νλ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ΅κ³ μ μ§ν©μ μ€λ¦μ°¨μμΌλ‘ μ λ ¬λ 1μ°¨μ λ°°μ΄(list, vector) λ‘ return ν΄μ£ΌμΈμ.
λ§μ½ μ΅κ³ μ μ§ν©μ΄ μ‘΄μ¬νμ§ μλ κ²½μ°μ ν¬κΈ°κ° 1μΈ 1μ°¨μ λ°°μ΄(list, vector) μ -1 μ μ±μμ return ν΄μ£ΌμΈμ.
μμ°μμ κ°μ nμ 1 μ΄μ 10,000 μ΄νμ μμ°μμ
λλ€.
λͺ¨λ μμλ€μ ν© sλ 1 μ΄μ, 100,000,000 μ΄νμ μμ°μμ
λλ€.
| n | s | section |
|---|---|---|
| 2 | 9 | [4, 5] |
| 2 | 1 | [-1] |
| 2 | 8 | [4, 4] |
λ¬Έμ λ₯Ό ν΄κ²°νλ©΄μ μμλ€μ κ³±μ μ΅λλ‘ λ§λλ κ·μΉμ λ°κ²¬νλ€.
μ£Όμ΄μ§ ν© sλ₯Ό nμΌλ‘ λλμμ λμ λͺ«μ λͺ¨λ μμμ κ· λ±νκ² ν λΉνλ€.
λλ¨Έμ§ λ§νΌμ μμμ 1μ λν΄μ€λ€.
function solution(n, s) {
// nκ°μ μμ°μλ‘ ν©μ΄ sκ° λλλ‘ ν μ μλ κ²½μ°
if (s < n) return [-1];
// κ° μμμ κΈ°λ³Έ κ° (λͺ«)
const share = Math.floor(s / n);
// λλ¨Έμ§ κ°
const remainder = s % n;
// κ° μμλ₯Ό shareλ‘ μ΄κΈ°νν λ°°μ΄μ μμ±
const answer = Array(n).fill(share);
// λλ¨Έμ§λ§νΌ λ°°μ΄μ λμμλΆν° 1μ© λν΄μ€
for (let i = 0; i < remainder; i++) {
answer[n - 1 - i]++;
}
return answer;
}
μ€λλ§μ μ½ν
λ₯Ό νΈλ λ΄ λ¨Έλ¦¬λ νμ΄λ³΄λ€ λλ¨Έλ¦¬μΈ κ²μ λκΌλ€.
μμΌλ‘ μ½ν
λ₯Ό μ΄μ¬ν νμ΄λ³΄μ!!!