티스토리 뷰
Algorithm/LeetCode
[LeetCode - Daily Challenge] 1189. Maximum Number of Balloons
Jaime.Lee 2021. 9. 14. 10:58Problem
Given a string text, you want to use the characters of text to form as many instances of the word "balloon" as possible.
You can use each character in text at most once. Return the maximum number of instances that can be formed.
Example 1:
Input: text = "nlaebolko"
Output: 1
Example 2:
Input: text = "loonbalxballpoon"
Output: 2
Example 3:
Input: text = "leetcode"
Output: 0
Constraints:
- 1 <= text.length <= 10^4
- text consists of lower case English letters only.
Solution
주어진 문자열을 가지고 balloon
을 최대 몇 번 만들 수 있는지 찾는 문제입니다.
문자열에서 나타나는 알파벳 중 b, a, l, o, n의 빈도수를 구해 이 중 최솟값을 반환하면 됩니다.
l과 o는 두 개씩 필요하니 빈도수를 2로 나눠준 뒤 최솟값을 구해야 합니다.
import java.util.stream.Stream;
public class Solution {
public int maxNumberOfBalloons(String text) {
int[] alphabets = new int[26];
for (char c : text.toCharArray()) {
alphabets[c - 'a']++;
}
int max = alphabets[0];
return Math.min(Math.min(Math.min(Math.min(max, alphabets[1]), alphabets[11] / 2), alphabets[14] / 2), alphabets[13]);
}
}
Test
package io.lcalmsky.leetcode.maximum_number_of_balloons;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertAll;
import static org.junit.jupiter.api.Assertions.assertEquals;
class SolutionTest {
@Test
void givenText_whenFindBalloons_thenCorrect() {
assertAll(
() -> test("nlaebolko", 1),
() -> test("loonbalxballpoon", 2),
() -> test("leetcode", 0)
);
}
private void test(String given, int expected) {
// when
Solution solution = new Solution();
int actual = solution.maxNumberOfBalloons(given);
// then
assertEquals(expected, actual);
}
}
'Algorithm > LeetCode' 카테고리의 다른 글
[LeetCode - Daily Challenge] 978. Longest Turbulent Subarray (0) | 2021.09.16 |
---|---|
[LeetCode - Daily Challenge] 917. Reverse Only Letters (0) | 2021.09.15 |
[LeetCode - Daily Challenge] 764. Largest Plus Sign (0) | 2021.09.10 |
[LeetCode - Daily Challenge] 848. Shifting Letters (0) | 2021.09.09 |
[LeetCode - Daily Challenge] 206. Reverse Linked List (0) | 2021.09.08 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Java
- Spring Data JPA
- JSON
- 스프링 부트 튜토리얼
- spring boot app
- QueryDSL
- intellij
- 클린 아키텍처
- 함께 자라기
- Spring Boot Tutorial
- 함께 자라기 후기
- Spring Boot
- leetcode
- 스프링 부트 회원 가입
- 알고리즘
- proto3
- spring boot jwt
- 스프링부트
- gRPC
- 헥사고날 아키텍처
- 스프링 데이터 jpa
- Jackson
- r
- spring boot application
- 스프링 부트
- @ManyToOne
- 스프링 부트 애플리케이션
- Linux
- JPA
- Spring Boot JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함