728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
무한루프에 빠지게 되는 테케가 존재했다.
이거 해결하느라 좀 고생했는데, 큐 사이즈만큼만이 최대라고 생각했는데
큐 사이즈를 합한 거에 2배만큼이 최대 사이즈였다.
한동안 알고리즘을 많이 안풀어서 다시 또 달려봐야지..!
전체코드
import java.io.*;
import java.util.*;
class Solution {
public int solution(int[] queue1, int[] queue2) {
List<Integer> list1 = new LinkedList<>();
List<Integer> list2 = new LinkedList<>();
long sum1 = 0;
long sum2 = 0;
for(int i=0; i<queue1.length; i++){
sum1 += queue1[i];
list1.add(queue1[i]);
}
for(int i=0; i<queue2.length; i++){
sum2 += queue2[i];
list2.add(queue2[i]);
}
if((sum1+sum2)%2 == 1){
return -1;
}
int cnt = 0;
while(true){
if(sum1 > sum2){
sum1 -= list1.get(0);
sum2 += list1.get(0);
list2.add(list1.get(0));
list1.remove(list1.get(0));
cnt++;
}else if(sum1 < sum2){
sum2 -= list2.get(0);
sum1 += list2.get(0);
list1.add(list2.get(0));
list2.remove(list2.get(0));
cnt++;
}
if(sum1 == sum2){
return cnt;
}else if(list1.size() == 0 || list2.size()==0 || cnt >= (queue1.length+queue2.length)*2){
cnt = -1;
break;
}
}
return cnt;
}
}
728x90
'코테 > Algorithm' 카테고리의 다른 글
[BOJ] 15655: N과 M(6) (JAVA) (0) | 2024.06.17 |
---|---|
[BOJ] 15654: N과 M(5) (JAVA) (0) | 2024.06.15 |
[BOJ] 15651: N과 M (3) (JAVA) (0) | 2024.06.09 |
[Programmers] 점프와 순간 이동 (JAVA) (0) | 2024.06.07 |
[BOJ] 15652: N과 M(4) (JAVA) (0) | 2024.06.04 |