π’ μ΄λ³΄μ μΉν κ°μ΄λ 'Partitioning Into Minimum Number Of Deci-Binary Numbers' - λ¬Έμ 1689 (C++, Python, JavaScript)
Source: Dev.to

Problem Summary
μ£Όμ΄μ§ κ²:
λ§€μ° ν° μμ μ μλ₯Ό λνλ΄λ λ¬Έμμ΄ n.
λͺ©ν:
nμ ν©μΌλ‘ λ§λ€ μ μλ λ°μ-λ°μ΄λ리 μ«μ(μ«μ 0κ³Ό 1λ§μΌλ‘ μ΄λ£¨μ΄μ§ μ)μ μ΅μ κ°μλ₯Ό μ°Ύλλ€.
Intuition
λ§μ
μ μ리λ§λ€ μ΄λ£¨μ΄μ§λ€. λ°μ-λ°μ΄λ리 μλ κ° μμ§ μ리μμ 0 λλ 1λ§ κΈ°μ¬ν μ μλ€.
- μΌμ μ리μμ
7μ΄λΌλ μ«μκ° μλ€λ©΄,7μ λ§λ€κΈ° μν΄μλ μ΅μ 7κ°μ λ°μ-λ°μ΄λ리 μκ° νμνλ€ (1μ 7λ² λν΄μΌ ν¨). - λ€λ₯Έ μ리μ μ«μ(
2λ3λ±)λ κ°μ μ리λ‘, ν΄λΉ μ리μμ0μ μ¬μ©νλ μλ€μ ν¬ν¨ν΄ λ§μ‘±μν¬ μ μλ€.
λ°λΌμ μ ν μμλ λ¬Έμμ΄μ μλ κ°μ₯ ν° μ«μκ° λλ€.
λ¬Έμμ΄μ 9κ° μμΌλ©΄ 9κ°μ λ°μ-λ°μ΄λ리 μκ° νμνκ³ , κ°μ₯ ν° μ«μκ° 3μ΄λ©΄ 3κ°μ μκ° νμνλ€.
Walkthrough: Understanding the Examples
Example 1: n = 32
- μ리μ:
3(μμ μ리)μ2(μΌμ μ리). - μμ μ리μμ μ΅μ μΈ κ°μ
1μ΄ νμ β10 + 10 + 10. - μΌμ μ리μμ λ κ°μ
1μ΄ νμ β11 + 11 + 10 = 32. - μ¬μ©λ μ΄ μ: 3(κ°μ₯ ν° μ리μ).
Example 2: n = 82734
- μ리μ:
8, 2, 7, 3, 4. - κ°μ₯ ν° μ«μλ
8. - 8κ°μ λ³λ μκ° νμνκ³ , λ€λ₯Έ μ리λ€μ β€β―8β―κ°μ
1μ μ¬μ©ν΄ λ§λ€ μ μλ€. - κ²°κ³Ό: 8.
Code Blocks
C++
class Solution {
public:
int minPartitions(string n) {
int maxi = 0;
for (char c : n) {
// Convert character to integer and track the maximum
if (maxi int:
# The result is simply the maximum digit in the string
# We convert the characters to integers to find the max
return int(max(n))
JavaScript
/**
* @param {string} n
* @return {number}
*/
var minPartitions = function(n) {
let maxi = 0;
for (let i = 0; i maxi) {
maxi = digit;
}
// Optimization: if we find a 9, we can stop early
if (maxi === 9) return 9;
}
return maxi;
};
Key Takeaways
- Greedy Logic: λ°μ΄ν° μ§ν©μμ κ°μ₯ ν° κ°μ΄ μ 체 μ§ν©μ νμν 쑰건μ κ²°μ νλ κ²½μ°κ° λ§λ€.
- String Manipulation: νμ€ μ μ λ²μ(
10^{100000})λ₯Ό μ΄κ³Όνλ κ±°λν μ«μλ λ¬Έμμ΄λ‘ λ€λ£¬λ€. - Complexity: ν΄κ²° λ°©λ²μ O(n) μκ°(μ¬κΈ°μ nμ λ¬Έμμ΄ κΈΈμ΄)κ³Ό O(1) μΆκ° 곡κ°μ μ¬μ©νλ€.
Final Thoughts
μ΄ λ¬Έμ λ κΈ°μ λ©΄μ μμ βμν!β μκ°μ μ 곡νλ€. λμ νλ‘κ·Έλλ°μ΄λ λΆν λ¬Έμ μ²λΌ λ³΄μΌ μ μμ§λ§, μ€μ λ‘λ κ΄μ°°λ ₯ ν μ€νΈμ΄λ€. μ€μ μννΈμ¨μ΄ μμ§λμ΄λ§μμλ μμ ν λΉκ³Ό μ μ¬νλ°, λ³λ ¬ μμ μ 체 μ€ν μκ°μ κ°μ₯ μ€λ 걸리λ λ¨μΌ μμ μ μν΄ μ νλλ―μ΄, μ°λ¦¬μ ν©λ κ°μ₯ ν° μ리μμ μν΄ μ νλλ€.