PrefixSum
[최초풀이]
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
cnt = 0
for i in range(len(A)):
if A[i] == 0:
cnt += sum(A[i+1:])
return cnt
[다른풀이]
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
zero = 0
count = 0
for i in range(len(A)):
if A[i] == 0:
zero += 1
else:
count += zero
if count > 1000000000:
return -1
else:
return count
CountDiv
[최초풀이]
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A, B, K):
if A == B:
if A % K == 0:
return 1
else:
return 0
cnt = 0
for i in range(A, B+1):
if i % K == 0:
cnt += 1
return cnt
[다른풀이]
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A, B, K):
XA = A//K
XB = B//K
YA = A % K
count = XB - XA
if YA == 0:
count += 1
return count
GenomicRangeQuery
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(S, P, Q):
ans = []
for i in range(len(P)):
string = S[P[i] : Q[i]+1]
string2 = sorted(string)
s= string2[0]
if s == 'A':
ans.append(1)
elif s == 'C':
ans.append(2)
elif s == 'G':
ans.append(3)
elif s == 'T':
ans.append(4)
return ans
[다른풀이]
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(S, P, Q):
ans = []
for i in range(len(P)):
string = S[P[i] : Q[i]+1]
if 'A' in string:
ans.append(1)
elif 'C' in string:
ans.append(2)
elif 'G' in string:
ans.append(3)
elif 'T' in string:
ans.append(4)
return ans
MinAbgTwoSlice
[최초풀이]
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
minNum = 100000
minIdx = 0
for i in range(len(A)-1):
sumA = A[i] + A[i+1]
if sumA < minNum:
minNum = sumA
minIdx = i
return minIdx
[다른풀이]
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
minA = sum(A[0:2])/2
res = 0
if len(A) == 2:
return res
for i in range(3, len(A)+1):
avg = sum(A[i-2:i])/2
if avg < minA:
res = i-2
minA = avg
avg = sum(A[i-3:i])/3 #3개짜리
if avg < minA:
res = i-3
minA = avg
return res