1189. Maximum Number of Balloons

양성준·2025년 4월 15일

코딩테스트

목록 보기
21/102

문제

https://leetcode.com/problems/maximum-number-of-balloons/description/

풀이

class Solution {
    public int maxNumberOfBalloons(String text) {
        Map<Character, Integer> map = new HashMap<>();
        for(char c : text.toCharArray()) {
            map.put(c, map.getOrDefault(c,0) + 1);
        }
        
        int b = map.getOrDefault('b', 0);
        int a = map.getOrDefault('a', 0);
        int l = map.getOrDefault('l', 0) / 2;
        int o = map.getOrDefault('o', 0) / 2;
        int n = map.getOrDefault('n', 0);

        // 여기서 가장 작은 숫자만큼 ballon을 만들 수 있다.
        int min = Math.min(b, a);
        min = Math.min(min, l);
        min = Math.min(min, o);
        min = Math.min(min, n);

        return min;
        // return Math.min(Math.min(Math.min(b, a), Math.min(l, o)), n);
    }
}
  • text에 등장하는 문자를 카운팅하여, ballon을 얼마나 만들 수 있는지 계산하는 문제
    • 개수를 세어야하기 때문에 Map을 사용하긴 했지만, char의 경우 배열의 index를 key로, 값을 value처럼 쓸 수도 있으므로 배열로도 풀 수가 있다.
      • char arr = new char[26];
      • arr[char - 'a']++;
  • b,a,l,o,n 각각 ballon을 만들 수 있는 가능한 횟수를 구한 뒤,
    가장 작은 횟수만큼 ballon을 만들 수 있으므로, Math.min을 이용해가며 비교
profile
백엔드 개발자

0개의 댓글