Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 디버깅
- next-stock
- 완전탐색
- 추천 검색 기능
- JPA
- 셀러리
- BFS
- spring event
- gRPC
- 검색어 추천
- 쿠키
- 누적합
- 카카오
- jwt 표준
- 구현
- langgraph
- 이분탐색
- ipo 매매자동화
- docker
- 아키텍쳐 개선
- 레디스 동시성
- 몽고 인덱스
- 결제서비스
- AWS
- piplining
- 크롤링
- 프로그래머스
- ai agent
- 백준
- 트랜잭샨
Archives
- Today
- Total
코딩관계론
[카카오] 두 큐 합 같게 만들기 본문
반응형
문제 이해하기
간단하게 생각하면 두 저울의 합을 같게 맞추는 문제로 한 저울에서 다른 저울로 값을 옮겨가다 보면 같게 맞춰진다.
문제 해결 방법 설명하기
1. 큐1에 있는 원소들의 합과 큐2에 있는 원소들의 합을 비교
2. 더 큰 값의 큐에서 더 작은 큐쪽으로 원소를 이동하면 됨
3. 문제 예시의 3번 조건을 보면 항상 같을 똑같이 만들 수 있는 것이 보장되지 않기 때문에 최대 경우의 수가 넘어가면 -1을 반환해야 함
코드
from collections import deque
def solution(q1, q2):
t1_sum = sum(q1)
t2_sum = sum(q2)
q1 = deque(q1)
q2 = deque(q2)
answer = 0
max_try = len(q1) * 4 # 최대 시도 횟수 설정
try_count = 0
while try_count <= max_try:
if t1_sum == t2_sum:
return answer
if t1_sum < t2_sum:
temp = q2.popleft()
q1.append(temp)
t2_sum -= temp
t1_sum += temp
else:
temp = q1.popleft()
q2.append(temp)
t2_sum += temp
t1_sum -= temp
try_count += 1
answer += 1
return -1 # max_try를 초과한 경우
if __name__ == "__main__":
q1 = [1, 2, 1, 2]
q2 = [1, 10, 1, 2]
print(solution(q1=q1, q2=q2))
반응형
'개발 > 알고리즘' 카테고리의 다른 글
[PCCP 기출문제] 1번 / 동영상 재생기 (0) | 2025.04.28 |
---|---|
[PCCP 기출문제] 1번 / 붕대 감기도움말 (0) | 2025.04.27 |
[과제테스트] 게임 승률 조회하기(python) (0) | 2024.05.19 |
[백준]AC (0) | 2024.05.11 |
[백준] 암호 만들기 (0) | 2024.05.07 |