728x90
우선 list 로 접근했고 시간초과가 나서 deque를 이용했다. 그래도 시간 초과가 나서 answer 값을 임의로 변경 해주었지만 그래도 시간 초과가 났다. 생각을 해보니 매번 deque 의 sum 을 구해줘야 해서 sum 을 변수로 지정해주고 시간 초과는 나지 않았다. 다른 사람의 풀이를 answer 을 q1의 길이의 3배 정도로 해주는 것 같다.
from collections import deque
def solution(q1, q2):
answer = 0
total = sum(q1) + sum(q2)
sum_q1 = sum(q1)
sum_q2 = sum(q2)
q1 = deque(q1)
q2 = deque(q2)
while True:
if total%2!=0:
return -1
if answer>250000:
return -1
if sum_q1==sum_q2:
return answer
if sum_q1>sum_q2:
q2.append(q1[0])
sum_q1 -= q1[0]
sum_q2 += q1[0]
q1.popleft()
answer+=1
if sum_q2>sum_q1:
q1.append(q2[0])
sum_q2 -= q2[0]
sum_q1 += q2[0]
q2.popleft()
answer+=1
return answer728x90
'🟢 알고리즘 문제 풀이 > Programmers' 카테고리의 다른 글
| [파이썬] 프로그래머스 숫자 카드 나누기 (0) | 2023.01.11 |
|---|---|
| [파이썬] 프로그래머스 택배상자 (0) | 2023.01.11 |
| [파이썬] 프로그래머스 최솟값 만들기 (0) | 2023.01.10 |
| [파이썬] 프로그래머스 k진수에서 소수 개수 구하기 (0) | 2023.01.06 |
| [파이썬] 프로그래머스 할인 행사 (1) | 2023.01.04 |