문제 : https://programmers.co.kr/learn/courses/30/lessons/49995
▶ 코드 (정확성 100, 시간초과)
def solution(cookie):
n = len(cookie)
s = [0]*(n+1)
for i in range(n): # 중복연산을 피하기 위해 i인덱스 까지의 sum배열 생성: O(n)
s[i+1] = s[i] + cookie[i]
#print(s)
max_value = 0
for M in range(1, n): # 인덱스 1~ (n-1)
for L in range(0, M):
for R in range(M+1, n+1): # L연산하는 순간에, R도 같이 연산해줘야한다.
left_part_sum = s[M] - s[L]
right_part_sum = s[R] - s[M]
# max_value와 같거나, 더 작다면 즉시 탈출
if left_part_sum <= max_value or right_part_sum <= max_value:
continue
#print(M, left_part_sum, right_part_sum)
if left_part_sum == right_part_sum:
max_value = left_part_sum
#print(max_value)
return max_value
solution([1]) # 0
solution([2,2]) # 2
solution([2,3]) # 0
solution([1,7,8]) # 8
solution([1,2,3,5]) # 5
solution([1,1,1,1,3,4,7]) # 7
solution([1,1,2,3]) # 3
solution([1,2,4,5]) # 0
'■코테 기출문제 > Summer,Winter Coding(~2018)' 카테고리의 다른 글
[Level 3] 숫자 게임 (0) | 2020.05.12 |
---|---|
[Level 3] 방문 길이 (0) | 2020.05.08 |
[Level 2] 영어 끝말잇기 (0) | 2020.05.08 |
[Level 2] 점프와 순간 이동 (0) | 2020.05.08 |
[Level 2] 소수 만들기 (0) | 2020.05.08 |
[Level 3] 기지국 설치 (0) | 2020.05.08 |
[Level 3] 배달 (0) | 2020.05.08 |
[Level 1] 예산 (0) | 2020.05.06 |