문제
정해진 개수로 주어진 숫자를 완성할 수 있는 방법 출력
입력
숫자의 개수
숫자의 나열
완성해야 할 숫자와 개수
입력 예
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 |