두 큐 합 같게 만들기
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 첫 풀이- fail
- 시간초과
def solution(queue1, queue2):
count=0
n=(len(queue1)+len(queue2))*2
while sum(queue1)!=sum(queue2):
if count>n:
return -1
count+=1
sum1=sum(queue1)
sum2=sum(queue2)
if sum1<sum2:
if not queue1:
return -1
queue1.append(queue2.pop(0))
else:
if not queue2:
return -1
queue2.append(queue1.pop(0))
return count
- 재풀이
- 계속해서 sum() 하는 과정에서 시간초과가 나는 것 같음
- -> sum을 처음에만 사용하도록 수정
from collections import deque
def solution(queue1, queue2):
q1, q2 = deque(queue1), deque(queue2)
count=0
n=(len(q1)+len(q2))*2
sum1=sum(q1)
sum2=sum(q2)
while sum1!=sum2:
if count>n:
return -1
count+=1
if sum1<sum2:
if not q2:
return -1
x=q2.popleft()
q1.append(x)
sum1+=x
sum2-=x
else:
if not q1:
return -1
x=q1.popleft()
q2.append(x)
sum2+=x
sum1-=x
return count
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [DP] 정수 삼각형 (1) | 2023.12.02 |
|---|---|
| [프로그래머스][조합] 이모티콘 할인행사 (0) | 2023.10.15 |
| [프로그래머스] [2019 KAKAO BLIND RECRUITMENT] 실패율 (0) | 2023.02.25 |
| [프로그래머스] [2020 KAKAO BLIND RECRUITMENT] 문자열 압축 (0) | 2023.02.04 |
| [프로그래머스] [2019 카카오 개발자 겨울 인턴십] 튜플 (0) | 2023.02.01 |