https://nodingco.tistory.com/135
[Python] 프로그래머스 118667. 두큐합같게만들기 (Lv.2)
https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞..
nodingco.tistory.com
Python 풀이를 Java로 옮기기만 했습니다. 문제링크와 아이디어, 구현 방법은 위 링크에 설명되어 있습니다.
import java.util.LinkedList;
import java.util.Queue;
public class q118667_Programmers_두큐합같게만들기 {
public static void main(String[] args) {
System.out.println(solution(new int[] { 3, 2, 7, 2 }, new int[] { 4, 6, 5, 1 }));
}
static int solution(int[] queue1, int[] queue2) {
Queue<Long> leftqueue = new LinkedList<Long>();
Queue<Long> rightqueue = new LinkedList<Long>();
long leftsum = 0;
long rightsum = 0;
int count = 0;
int limit = 2 * (queue1.length + queue2.length);
for (int i = 0; i < queue1.length; i++) {
leftsum += queue1[i];
leftqueue.add((long) queue1[i]);
}
for (int i = 0; i < queue2.length; i++) {
rightsum += queue2[i];
rightqueue.add((long) queue2[i]);
}
if ((leftsum + rightsum) % 2 == 1) {
return -1;
}
while (count < limit) {
if (leftsum == rightsum) {
return count;
}
if (leftsum < rightsum) {
leftsum += rightqueue.peek();
rightsum -= rightqueue.peek();
leftqueue.add(rightqueue.poll());
} else {
rightsum += leftqueue.peek();
leftsum -= leftqueue.peek();
rightqueue.add(leftqueue.poll());
}
count += 1;
}
return -1;
}
}
'🔍 알고리즘 > 프로그래머스 Java' 카테고리의 다른 글
[Java] 프로그래머스 12937. 짝수와 홀수 (Lv.1) (0) | 2022.09.27 |
---|---|
[Java] 프로그래머스 118669. 등산코스정하기 (Lv.3) (0) | 2022.08.23 |
[Java] 프로그래머스 118666. 성격유형검사하기 (Lv.1) (0) | 2022.08.18 |
[Java] 프로그래머스 1831.4단고음 (Lv.4) (0) | 2022.06.30 |
[Java] 프로그래머스 43238.입국심사 (Lv.3) (0) | 2022.06.29 |