리트코드 알고리즘/리트코드 easy
(간단한 코드)리트코드 1189. Maximum Number of Balloons
문학적 딥러닝
2024. 12. 13. 23:06
주어진 문자열 text에 있는 알파벳으로 balloon을 몇개 만들 수 있는지 물어보는 문제이다.
물론 처음에 생각을 할때, 리스트를 만들고, 줄여나가는 방식을 생각하는 사람들도 있을 것이다.
코드를 복잡하게 짜는 경험을 하는 것은 정말로 값지 경험이지만, 거기서 만족을 하면 안된다는 점이 있다.
우선 이것을 하기 위해서는 딕셔너리가 가장 효율적이다.
위에 있는 이 딕셔너리 모습이, 하나의 balloon을 만들 수 있는 최소 조건이다.
그렇다면, 아래와 같이 무작위로 있는 경우, 무엇을 판단을 할까?
그림에도 적었듯이, 가장 작은 수를 기준으로 선발을 하면 된다.
코드는 다음과 같다.
class Solution:
def maxNumberOfBalloons(self, text: str) -> int:
h = {'b':0,'a':0,'l':0,'o':0,'n':0}
for t in text: #for문을 통해서, 우선 text안에 우리가 필요한 알파벳이 몇개인지 확인
if t in h:
h[t] += 1
a = h['a']
b = h['b']
l = h['l']//2 # //는 몫을 구하는 것이기에, 1.5가 나오면 1로 출력이 된다.
o = h['o']//2 # l과o는 2개씩 필요하니까, 2로 나눠주면, 다른 것들과
n = h['n'] # 개수가 맞춰진다
return min(a,b,l,o,n) #우리가 얻은 것들중 최소값만 출력하면 끝