문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
문자열 text가 주어졌을 때, text의 문자를 사용해서 최대한 많은 "balloon"이란 단어를 만들고 싶다.
각 문자는 text에서 한 번만 사용할 수 있다. 나타낼 수 있는 최대한 많은 수를 반환해라.
#1
Input: text = "nlaebolko"
Output: 1
#2
Input: text = "loonbalxballpoon"
Output: 2
#3
Input: text = "leetcode"
Output: 0
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);
}
}