[LeetCode/Medium] 1689. Partitioning Into Minimum Number Of Deci-Binary Numbers (JAVA)

Jiwoo Kim·2021년 5월 26일
0

알고리즘 정복하기

목록 보기
80/85
post-thumbnail
post-custom-banner

문제


풀이

문제에서 요구되는 결괏값은 결국 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';
    }
}
post-custom-banner

0개의 댓글