본문 바로가기

알고리즘/해커랭크

Birthday Chocolate

문제

https://www.hackerrank.com/challenges/the-birthday-bar/problem?h_r=next-challenge&h_v=zen&h_r=next-challenge&h_v=zen

 

정해진 개수로 주어진 숫자를 완성할 수 있는 방법 출력

 

입력 

숫자의 개수

숫자의 나열

완성해야 할 숫자와 개수

 

입력 예

5

1 2 1 3 2

3 2

 

출력 예

2

 

마지막 입력이 3 2 이므로 2가지 숫자로 3을 만들어야 하기 때문에 [1,2]=3, [2,1]=3 두가지 방법으로 만들 수 있음

+연속된 숫자로 만들어야한다

 

제출한 코드

def birthday(s, d, m):
    res = 0
    for i, _ in enumerate(s):
        if sum(s[i:i+m])==d:
            res+=1
   	return res

인덱스 i부터 i+m까지의 합이 d일때 카운트를 증가시킴

꼭 enumerate를 안써도 되지만... 뭔가 잘아는 것처럼 보이려구 꼴꼴

 

 

되게 간단하게 풀었다고 생각했는데 이런 방법도 있다고한다

def solve(n, s, d, m):
    return sum(sum(s[i: i + m]) == d for i in range(n - m + 1))
def getWays(n, s, d, m):
    return sum(1 for i in range(n-m+1) if sum(s[i:i+m])==d)

 

'알고리즘 > 해커랭크' 카테고리의 다른 글

Migratory Birds  (0) 2020.03.08
Divisible Sum Pairs  (0) 2020.03.08
Breaking the Records  (0) 2020.03.07
Between Two Sets  (0) 2020.03.07
Kangaroo  (0) 2020.03.06