문제에서 요구되는 결괏값은 결국 digits
중 최댓값이다. deci-binary number는 1또는 0만 자릿수로 가질 수 있기 때문에, 가장 큰 자릿수 k
를 만들기 위해서는 그 자리에 1을 k
번 사용해야 하기 때문이다.
그래서, O(N)
의 시간복잡도와 O(1)
의 시간복잡도로, n
의 숫자를 차례대로 탐색한 후 최댓값을 리턴하면 된다.
class Solution {
public int minPartitions(String n) {
char maxDigit = '0';
for (char digit : n.toCharArray())
if (digit > maxDigit) maxDigit = digit;
return maxDigit - '0';
}
}