솔루션: 최소 10진수 이진수로 분할
Leetcode 문제 #1689(중간): 십진수 이진수의 최소 개수로 분할
설명:
(다음으로 이동: Solution Idea || 코드: JavaScript | Python | Java | C++ )
A decimal number is called deci-binary if each of its digits is either
0
or1
without any leading zeros. For example,101
and1100
are deci-binary, while112
and3001
are not.Given a string
n
that represents a positive decimal integer, return the minimum number of positive deci-binary numbers needed so that they sum up ton
.
예:
Example 1: Input: n = "32" Output: 3 Explanation: 10 + 11 + 11 = 32
Example 2: Input: n = "82734" Output: 8
Example 3: Input: n = "27346209830709182346" Output: 9
제약:
1 <= n.length <= 10^5
n
consists of only digits.n
does not contain any leading zeros and represents a positive integer.
아이디어:
(다음으로 이동: Problem Description || 코드: JavaScript | Python | Java | C++ )
각 10진법 숫자가 각 위치에서 1보다 높지 않은 경우 주어진 n 위치에서 x를 달성하려면 적어도 x개의 숫자가 필요합니다. 이는 n의 임의 위치에서 가장 큰 문자가 n을 얻기 위해 함께 더해야 하는 10진수 숫자의 수를 결정함을 의미합니다.
시각적 증명을 위해 n을 숫자 그래프로 생각할 수 있습니다.
그런 다음 그래프를 추가할 숫자의 스택으로 생각할 수 있습니다.
그러면 이 스택은 필연적으로 n에서 가장 큰 한 자릿수만큼 커야 합니다.
n의 문자를 아주 쉽게 분리하고 최대값을 찾은 다음 해당 숫자를 반환할 수 있습니다.
자바스크립트 코드:
(다음으로 이동: Problem Description || Solution Idea )
const minPartitions = n => Math.max(...n.split(''))
파이썬 코드:
(다음으로 이동: Problem Description || Solution Idea )
class Solution:
def minPartitions(self, n: str) -> int:
return max(n)
자바 코드:
(다음으로 이동: Problem Description || Solution Idea )
class Solution {
public int minPartitions(String n) {
char best = '0';
for (char c : n.toCharArray())
if (c > best) best = c;
return best - '0';
}
}
C++ 코드:
(다음으로 이동: Problem Description || Solution Idea )
class Solution {
public:
int minPartitions(string n) {
char best = '0';
for (auto& c : n)
if (c > best) best = c;
return best - '0';
}
};
Reference
이 문제에 관하여(솔루션: 최소 10진수 이진수로 분할), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/seanpgallivan/solution-partitioning-into-minimum-number-of-deci-binary-numbers-3njo텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)