1. 연속된 K개 요소의 최대 합 구하기
배열의 일정한 범위(k개 요소만큼) 1칸씩 미뤄가면서 합계 구해서 max와 비교
def maxSum(arr, n, k):
if not n > k:
print("invalid")
return -1
max_sum = 0
window_sum = sum([arr[i] for i in range(k)])
print(window_sum)
for i in range(n-k):
window_sum = window_sum - arr[i] + arr[i+k]
max_sum = max(window_sum, max_sum)
return max_sum
arr = [1,3,7,4,8,4,0, 2]
n = len(arr)
k = 3
print(maxSum(arr, n , k))
2. K종류의 알파벳으로 이루어진 가장 긴 문자열 길이 찾기
def get_key(dic, val):
for key, value in dic.items():
if val == value:
return key
return "key doesn't exist"
def sliding_window(strs):
n = len(strs)
if(n < l): return n
idx = 0
ridx, lidx = 0, 0
maxi = 0
dic = dict()
while ridx < n:
if(len(dic) < k):
dic[strs[ridx]] = ridx
ridx += 1
if(len(dic) == k):
mini = min(dic.values())
del dic[get_key(dic, mini)]
lidx = mini + 1
maxi = max(maxi, ridx-lidx)
return maxi
print(sliding_window("ABBBBBBBBBBBCDDDDD"))
* list 요소의 합계 구하기
arr = [1, 2, 3, 4, 5]
#list 전체의 합
sum(arr)
#0 ~ k 번째 요소의 합계
sum(arr[i] for i in range(k))
* 딕셔너리 valuer로 key 찾기
def get_key(dic, val):
for key, value in dic.items():
if val == value:
return key
return "key doesn't exist"
print(list(my_dict.keys())[list(my_dict.values()).index(VAL)])
* dictonary 요소 지우기
del dic[KEY]
'개발' 카테고리의 다른 글
[Python] json.dump 한글 깨짐 (0) | 2023.03.11 |
---|---|
라인 Notify 봇 만들기 (0) | 2022.08.29 |