원본 : https://school.programmers.co.kr/learn/courses/30/lessons/118667
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
import java.util.*;
class Solution {
public int solution(int[] queue1, int[] queue2) {
Queue<Integer> q1 = new LinkedList<>();
Queue<Integer> q2 = new LinkedList<>();
long sum1 = 0;
long sum2 = 0;
int maxCnt = (queue1.length + queue2.length) * 2;
for (int num : queue1) {
sum1 += num;
q1.add(num);
}
for (int num : queue2) {
sum2 += num;
q2.add(num);
}
long mid = (sum1 + sum2) / 2;
int cnt = 0;
while (sum1 != mid) {
if (cnt > maxCnt) {
return -1;
}
if (sum1 < mid) {
if (!q2.isEmpty()) {
sum1 += q2.peek();
sum2 -= q2.peek();
q1.add(q2.poll());
}
} else {
if (!q1.isEmpty()) {
sum2 += q1.peek();
sum1 -= q1.peek();
q2.add(q1.poll());
}
}
cnt++;
}
return cnt;
}
}
연속 부분 수열 합의 개수 (연습문제) (0) | 2022.10.23 |
---|---|
숫자 짝꿍 (연습문제) (0) | 2022.10.23 |
성격 유형 검사하기 (2022 KAKAO TECH INTERNSHIP) (0) | 2022.08.30 |
야근 지수 (연습문제) (0) | 2022.08.12 |
다단계 칫솔 판매 (2021 Dev-Matching: 웹 백엔드 개발자(상반기)) (0) | 2022.08.11 |
댓글 영역