알고리즘 119

<백준> 17478번 파이썬 알고리즘

def recursion(m): print("_" * (4 * (n - m)) + '"재귀함수가 뭔가요?"') if m == 0: print("_" * (4 * (n - m)) + '"재귀함수는 자기 자신을 호출하는 함수라네"') print("_" * (4 * (n - m)) + '라고 답변하였지.') return print("_" * (4 * (n - m)) + '"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.') print("_" * (4 * (n - m)) + '마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.') print("_" * (4 * (n - m)) + '그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 ..

알고리즘 2022.05.26

<백준> 1806번 파이썬 알고리즘 [투 포인터][부분 합]

N, S = map(int, input().split()) li = list(map(int, input().split())) s = 0 e = 0 summary = 0 prefix_sum = [0] for i in li: summary += i prefix_sum.append(summary) ans = 1000001 s = 0 e = 1 while s != N: ## S 이상 일 때 if prefix_sum[e] - prefix_sum[s] >= S: ## 길이 최소 갱신하기 if e - s < ans: ans = e - s ## 더 작은 값에서도 S 이상이 되는지 알아봐야 함 s += 1 else: ## (s, e) = (n-1, n) 이 될 때 까지 if e != N: e += 1 else: s +=..

알고리즘 2022.04.18