[LeetCode] Maximum Number of Balloons

아르당·3일 전

LeetCode

목록 보기
250/254
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

문자열 text가 주어졌을 때, text의 문자를 사용해서 최대한 많은 "balloon"이란 단어를 만들고 싶다.
각 문자는 text에서 한 번만 사용할 수 있다. 나타낼 수 있는 최대한 많은 수를 반환해라.

Example

#1
Input: text = "nlaebolko"
Output: 1

#2
Input: text = "loonbalxballpoon"
Output: 2

#3
Input: text = "leetcode"
Output: 0

Constraints

  • 1 <= text.length <= 10^4
  • text는 오직 영어 소문자로 구성된다.

Solved

class Solution {
    public int maxNumberOfBalloons(String text) {
        int[] f = new int[26];

        for(char c : text.toCharArray()){
            f[c - 'a']++;
        }

        if(f['l' - 'a'] <= 1 || f['o' - 'a'] <= 1){
            return 0;
        }

        if(f['b' - 'a'] < 1 || f['a' - 'a'] < 1 || f['n' - 'a'] < 1){
            return 0;
        }

        int minLO = Math.min(f['l' - 'a'], f['o' - 'a']);
        int minBAN = Math.min(f['b' - 'a'], Math.min(f['a' - 'a'], f['n' - 'a']));

        return Math.min(minLO / 2, minBAN);
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글